sync: When there are merge conflicts that get automatically resolved, exit nonzero at the end.

This commit is contained in:
Joey Hess 2013-11-07 15:02:11 -04:00
parent 365ecb6c2d
commit 4f373503f2
3 changed files with 13 additions and 1 deletions

View file

@ -276,7 +276,7 @@ mergeFrom branch = do
return r
runmerge a = ifM a
( return True
, resolveMerge
, void resolveMerge >> return False
)
{- Resolves a conflicted merge. It's important that any conflicts be

2
debian/changelog vendored
View file

@ -11,6 +11,8 @@ git-annex (5.20131102) UNRELEASED; urgency=low
"git status" won't work in them.
* The -c option now not only modifies the git configuration seen by
git-annex, but it is passed along to every git command git-annex runs.
* sync: When there are merge conflicts that get automatically resolved,
exit nonzero at the end.
-- Joey Hess <joeyh@debian.org> Sat, 02 Nov 2013 14:54:36 -0400

View file

@ -1,3 +1,13 @@
A conflict during sync or merge is something that requires user intervention, or at least notification. For that reason it would be nice if git annex returned a nonzero exit status when such a conflict happened during a sync or a merge. This is what git does after a conflicting pull, and would make it easier to spot a conflict in automated syncs without having to parse annex output or the logs.
> Good idea, [[done]]. --[[Joey]]
Also, it would be nice if your new `git annex status` were able to inform about remaining conflicts in the repo, for instance by reporting files with variant-XXX suffix.
> Hmm, that would need a separate pass through the whole tree, since
> currently it can use `git ls-files` to find only modified/deleted/new
> files. I would rather not make the new `git annex status` slower for
> this.
>
> It would be possible to add it to `git annex info` (old `status`)
> which already has to look through the entire work tree.