Since uuid.log, trust.log and remote.log are union merged, it's possible for any given item in them to have multiple values after a merge. This would happen, for example, if the value was changed in different ways in two repos which were then merged. git-annex will use an arbitrary one of the multiple values.

A workaround if this should happen to you is to use git annex describe or other commands to re-set the value you want. The process of setting the value will remove the multiple lines.

To fix this the file format needs to be changed to include a timestamp as is done with the other log files, then git-annex can consistently pick the newest value -- which is as close to the "right" value as can be determined in this situation.


File format backwards-compatability is the issue. Ideally, old git-annex would keep working, ignoring the timestamp.

  • uuid.log: "uuid description timestamp" would work; old git-annex would just treat the timestamp as part of the description which would be ok

    update: converted! --Joey

  • trust.log: "uuid trustlevel timestamp" would work; old git-annex ignores trailing words

    update: converted! --Joey

  • remote.log: "uuid key=value ... timestamp" is on the edge but does work (old git-annex will include the timestamp in the key/value map it builds, but that should not break anything really)

    update: converted! --Joey

Appending "timestamp=xxxxx" would be good for clarity, and make it easier to parse the timestamp out from lines that have it.

done --Joey

Comments on this page are closed.