Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to resolve file conflict in large databases? #841

Closed
C0rn3j opened this issue Aug 1, 2017 · 8 comments
Closed

How to resolve file conflict in large databases? #841

C0rn3j opened this issue Aug 1, 2017 · 8 comments

Comments

@C0rn3j
Copy link

C0rn3j commented Aug 1, 2017

My Nextcloud folder went out of sync, making me add/change entries on 2 PCs, and when it synced again I ended up with two database files.

Is there a way to view history of all entries sorted by date, so I can easily see which changes were made in each database file? If not, I'd welcome that feature.

There are hundreds of entries so manually looking throughout the database is not an option.

@phoerious
Copy link
Member

You can use the merge feature to automatically merge in changes. But do it on a copy to be on the safe side.

@C0rn3j
Copy link
Author

C0rn3j commented Aug 1, 2017

Thanks, used the merge feature, hope everything is okay.

Would still prefer to do this manually and actually be sure that I'm adding stuff correctly via a history log.

For example if I changed the notes of a single entry on both machines I think I'd lost something in the process?

@louib
Copy link
Member

louib commented Aug 9, 2017

@C0rn3j Unfortunately, yes. Right now the merge functionality uses the entry modification date and keeps the newest version of the entry. So if you modified an entry in both database, There a possibility that you lost some of the changes. I'll open an issue for that.

@jeroenev
Copy link

@louib doesn't keepassXC add the older version of the password in the history of the entry?

@louib
Copy link
Member

louib commented Aug 29, 2017

@jeroen7s I don't think so. Right now the only mode available is KeepNewer, and the behavior is to replace the existing entry when it's older than the other entry.

case KeepNewer:
    if (timeExisting < timeOther) {
        // only if other entry is newer, replace existing one
        removeEntry(existingEntry);
        addEntry(otherEntry->clone(Entry::CloneNoFlags));
    }

@nirfse
Copy link

nirfse commented Oct 31, 2017

It'd be nice to have a changelog after merging is finished, at least in a dialog window with new keys paths. Thus, one could have an option to manually check merged keys. At the moment, merging is absolutely blind.

@droidmonkey
Copy link
Member

droidmonkey commented Nov 1, 2017

The code that louib mentions above was changed in 2.2.1 to include merging history.

@droidmonkey
Copy link
Member

This is covered by #1152, closing in favor of that one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants