Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Finding which database entries have been changed

Kesafi
2012-11-28
2012-12-03
  • Kesafi
    Kesafi
    2012-11-28

    Hi

    I'm a long time and enthusiastic KeePass user and never had any trouble with it. I've never posted here before.
    However I've just come across an issue I can't resolve. I suspect I'm just having a blind spot, so if someone could help point the way I'd be very grateful.

    I have two copies of the same database on two different PCs. It's easy to see which one is the more recent version. Here's the problem: how can I identify which entries have actually been edited in the more recent version? Where were the changes made?

    Thanks and regards

     
  • jmanteau
    jmanteau
    2012-11-28

    Try this, I've made it for almost the same problem:
    https://github.com/jmanteau/KeeMerge

     
  • Kesafi
    Kesafi
    2012-11-28

    Thank you very much for the prompt response.
    Is this only for KeePass V1.x databases? I'm already using V2.x
    Unfortunately my problem is not in merging two databases. They are used independently, and never at the same time. I can simply take whichever is the newer one and use it to overwrite the older. But occasionally recently I would have really liked to have known which entries had been changed.

    I had hoped there would be a really simple method within the program itself. I tried displaying the column with the Last Modification Time and sorting by that. That would have been quite adequate for my purposes. However I found two issues with this. I keep my many passwords in groups and sub-groups. The default is that you can only view one group of passwords at a time. I really need to be able to sort the entire database by this field. The second point is when I enable the "Show Entries of Subgroups" option. This does seem to show the entire database list, but the sorting is still performed within each subgroup. And the subgroups are sorted according to the order they appear in the left-hand navigation tree.

    There are lots of other solutions I can imagine. For example, stop having two databases. Why not just have one and store it in Dropbox or keep it on a USB stick? Well, there are separate (non-KeePass) operational issues I can't go in to here. This is not a show stopper - I will keep on KeePassing - but I've only just become aware that this feature doesn't seem to exist.

    I suspect if I abandoned orderly groups and subgroups and just had one great big list I could sort them all. I'm very reluctant to take that approach.

     
  • Paul
    Paul
    2012-11-28

    Depends on which version of KeePass.
    As the database started life as the same thing you can easily merge / sync the entries.

    KeePass V1
    1. Open the first database.
    2. Select File > Import From > KeePass Database.
    3. Select the second database.
    4. Select "Overwrite if newer".
    5. Copy the first database to over the second.

    KeePass V2
    1. Open the first database.
    2. Select File > Synchronize > Synchronize with file.
    3. Select the second database.
    4. Both copies are now the same.

    cheers, Paul

     
  • Paul
    Paul
    2012-11-28

    In V2 all modified entries have the older data saved under the History tab. At present there is no view of recent changes, apart from editing the entry and clicking the History tab.

    cheers, Paul

     
  • Kesafi
    Kesafi
    2012-11-29

    Thanks Paul, I appreciate these answers, and I must confess, I'd never examined the History tab closely before.
    However I think we're dancing around the problem, probably because I'm not explaining it well enough.
    Let's say I have a database with three entries: A, B and C. I have a copy of this database on two separate PCs and periodically data in either copy may get changed. Right now, for various reasons, the only practical method of syncing is an overwrite of the older db file by the newer db file, in either direction as appropriate. This works - there can never be an occasion when both db files have been in use simultaneously and so distinguishing the older and newer is easy. However, it would occasionally be nice to know in the newer version whether it was A, B, C, A and B, A and C etc that had been modified. (Thanks to your brilliant suggestion of the History tab I would now be able to see exactly what the change had been!) For three entries a manual check would be easy. Unfortunately the db in question has several hundred entries and manual checks are out of the question.

    If anyone can find a really quick way of identifying which entries have most recently been changed (the details of the change are secondary and already covered by the history tab that I know about now!) this would be a real bonus. I think I said it would be "nice to know" and that's exactly the level of importance right now.

    Thanks to all so far for the responses.

     
  • Paul
    Paul
    2012-11-29

    There is no need to to copy files over other files in V2, sync does all the work for you.
    Follow the steps in this trigger guide.

    cheers, Paul

     
  • Kesafi
    Kesafi
    2012-12-03

    Paul

    Thank you again for the response. I feel very ungrateful in saying it still doesn't seem to address the issue of 'what has changed'.
    To tell the full story of the set-up I'm involved in is tricky and I've only gradually been revealing elements of the arrangement.

    There are two PCs in physically separate locations. One has Dropbox installed on it and the Keepass db is sync'd with Dropbox. (However I note the trigger guide recommends not having the db in the Dropbox folder itself, and using a copy. I'll have to investigate this further. It's not what we've been doing to date. Dropbox is not the only form of backup used for the Keepass db on that PC so there are other levels of safety.) For various reasons the second PC can not have Dropbox installed on it. It can however access the Dropbox website. So, at the second PC, an upload or download to or from the Dropbox website is done manually whenever required. Maybe not a perfect method, but we've worked with it for some time and it seems sustainable.

    This latest issue of 'what has actually changed' has only emerged recently, and would exist regardless of the methods we use. Even if there were only a single database on a single PC, how would you find out what you changed last?

    Thanks again for the supportive responses.

     
  • Paul
    Paul
    2012-12-03

    The second copy is to ensure the integrity of the local database. This means the second / sync copy can be lost / corrupted without causing you problems.

    There is no easy way to show the latest changes, but this method may work for you.

    1. View > Configure columns.
    2. Tick Last Modified.
    3. Click in the Search box and press Enter.

    You will now have a list you can sort by modified date.

    cheers, Paul

     
    Last edit: Paul 2012-12-03
  • Kesafi
    Kesafi
    2012-12-03

    "There is no easy way to show the latest changes ... "
    I'm starting to believe it! :)

    I did mention in my second post here that I'd tried this, with a couple of drawbacks.
    Oh well, thank you for your patience and understanding - much appreciated.