
* webapp: Detect when upgrades are available, and upgrade if the user desires. (Only when git-annex is installed using the prebuilt binaries from git-annex upstream, not from eg Debian.) * assistant: Detect when the git-annex binary is modified or replaced, and either prompt the user to restart the program, or automatically restart it. * annex.autoupgrade configures both the above upgrade behaviors. * Added support for quvi 0.9. Slightly suboptimal due to limitations in its interface compared with the old version. * Bug fix: annex.version did not get set on automatic upgrade to v5 direct mode repo, so the upgrade was performed repeatedly, slowing commands down. * webapp: Fix bug that broke switching between local repositories that use the new guarded direct mode. * Android: Fix stripping of the git-annex binary. * Android: Make terminal app show git-annex version number. * Android: Re-enable XMPP support. * reinject: Allow to be used in direct mode. * Futher improvements to git repo repair. Has now been tested in tens of thousands of intentionally damaged repos, and successfully repaired them all. * Allow use of --unused in bare repository. # imported from the archive
23 lines
1.3 KiB
Markdown
23 lines
1.3 KiB
Markdown
Running `git annex sync` or using the [[assistant]] involves merging
|
|
changes from elsewhere into your repository's currently checked out branch.
|
|
This could lead to a merge conflict, perhaps because the same file
|
|
got changed in two different ways. A nice feature is that these
|
|
merge conflicts are automatically resolved, rather than leaving
|
|
git in the middle of a conflicted merge, which would prevent further
|
|
syncing from happening.
|
|
|
|
When a conflict occurs, there will be several messages printed about the merge
|
|
conflict, and the file that has the merge conflict will be renamed, with
|
|
".variant-XXX" tacked onto it. So if there are two versions of file foo,
|
|
you might end up with "foo.variant-AAA" and "foo.variant-BBB". It's then
|
|
up to you to decide what to do with these two files. Perhaps you can
|
|
manually combine them back into a single file. Or perhaps you choose to
|
|
rename them to better names and keep two versions, or delete one version
|
|
you don't want.
|
|
|
|
The "AAA" and "BBB" in the above example are essentially arbitrary
|
|
(technically they are the MD5 checksum of the key). The automatic merge
|
|
conflict resoltuion is designed so that if two or more repositories both get
|
|
a merge conflict, and resolve it, the resolved repositories will not
|
|
themselves conflict. This is why it doesn't use something nicer, like
|
|
perhaps the name of the remote that the file came from.
|