aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-11-07 15:02:11 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-11-07 15:02:11 -0400
commit39933fd1b6408e08549af1f9e852bf711ccf4ad8 (patch)
treeb0cee60f9393c09a89e634ea3e96872a965a6b25
parent7044c30d565dc1555f719bb46848c1316c1f838e (diff)
sync: When there are merge conflicts that get automatically resolved, exit nonzero at the end.
-rw-r--r--Command/Sync.hs2
-rw-r--r--debian/changelog2
-rw-r--r--doc/todo/wishlist:_detection_of_merge_conflicts.mdwn10
3 files changed, 13 insertions, 1 deletions
diff --git a/Command/Sync.hs b/Command/Sync.hs
index a37fcab98..beb1e1a39 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -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
diff --git a/debian/changelog b/debian/changelog
index 3682cc3b5..6b50b697f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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
diff --git a/doc/todo/wishlist:_detection_of_merge_conflicts.mdwn b/doc/todo/wishlist:_detection_of_merge_conflicts.mdwn
index 1824a91ee..1b4caeff0 100644
--- a/doc/todo/wishlist:_detection_of_merge_conflicts.mdwn
+++ b/doc/todo/wishlist:_detection_of_merge_conflicts.mdwn
@@ -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.