Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
git-annex-resolvemerge(1)   General Commands Manual  git-annex-resolvemerge(1)

       git-annex-resolvemerge -	resolve	merge conflicts

       git annex resolvemerge

       Automatically  resolves	a conflicted merge. This is done automatically
       when using git annex sync or git	annex merge.

       When two	trees being merged contain conflicting versions	of an  annexed
       file,  the  merge  conflict will	be resolved by adding both versions to
       the tree, using variants	of the filename.

       When one	tree modified the file,	and the	other tree deleted  the	 file,
       the merge conflict will be resolved by adding the modified file using a
       variant of the filename,	leaving	the original filename deleted.

       When the	merge conflict involves	a file that is annexed	in  one	 tree,
       but  is	not  annexed  in the other tree, it is resolved	by keeping the
       non-annexed file	as-is, and adding the annexed version using a  variant
       of the filename.

       Note  that  only	merge conflicts	that involve one or more annexed files
       are resolved. Merge conflicts between two files that  are  not  annexed
       will not	be automatically resolved.

       Suppose	Alice  commits a change	to annexed file	foo, and Bob commits a
       different change	to the same file foo.

       Merging between them will then fail, and	git  will  present  the	 merge
       conflict	 as  a	file foo pointing to one version of the	git-annex sym-
       link, with git status indicating	that foo has an	unresolved conflict.

       Running git annex resolvemerge in this situation	will resolve the merge
       conflict,  by  replacing	 the  file foo with files named	like foo.vari-
       ant-c696	and foo.variant-f16a. One of the files has  the	 content  that
       Alice committed,	and the	other has the content that Bob committed.

       The  user  can  then  examine  the two variants of the file, and	either
       merge the two changes into a single file, or rename one of them back to
       foo and delete the other.

       Now  suppose Alice commits a change to annexed file bar,	while Bob com-
       mits a deletion of the same file	bar. Merging will  fail.  Running  git
       annex resolvemerge in this situation will resolve the merge conflict by
       making a	file with a name like bar.variant-421f containing Alice's ver-
       sion.  The  bar	file  remains  deleted.	The user can later examine the
       variant of the file and either rename it	back  to  bar,	or  decide  to
       delete it too.


       Joey Hess <>



Want to link to this manual page? Use this URL:

home | help