aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-06-01 12:46:36 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-06-01 12:51:01 -0400
commitde8f6959d3cd4af348e7a72c45e6e1d6d3cd4cfa (patch)
treef63493430204d764d84a44a909f68b778b719716 /doc
parent5c058d99a26da3639afcbf855eb7b6ca3d628fb3 (diff)
configuration to disable automatic merge conflict resolution
* Added annex.resolvemerge configuration, which can be set to false to disable the usual automatic merge conflict resolution done by git-annex sync and the assistant. * sync: Added --no-resolvemerge option. Note that disabling merge conflict resolution is probably not a good idea in a direct mode repo or adjusted branch. Since updates to both are done outside the usual work tree, if it fails the tree is not left in a conflicted state, and it would be hard to manually resolve the conflict. Still, made annex.resolvemerge be supported in those cases for consistency. This commit was sponsored by Riku Voipio.
Diffstat (limited to 'doc')
-rw-r--r--doc/forum/controlling_how___34__git_annex_sync__34___resolves_conflicts/comment_2_c091e5a668b15aca7b2faa955beab403._comment8
-rw-r--r--doc/git-annex-config.mdwn6
-rw-r--r--doc/git-annex-merge.mdwn3
-rw-r--r--doc/git-annex-sync.mdwn17
-rw-r--r--doc/git-annex.mdwn9
5 files changed, 38 insertions, 5 deletions
diff --git a/doc/forum/controlling_how___34__git_annex_sync__34___resolves_conflicts/comment_2_c091e5a668b15aca7b2faa955beab403._comment b/doc/forum/controlling_how___34__git_annex_sync__34___resolves_conflicts/comment_2_c091e5a668b15aca7b2faa955beab403._comment
new file mode 100644
index 000000000..f254f6e7d
--- /dev/null
+++ b/doc/forum/controlling_how___34__git_annex_sync__34___resolves_conflicts/comment_2_c091e5a668b15aca7b2faa955beab403._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 2"""
+ date="2017-06-01T16:16:44Z"
+ content="""
+I've implemented the annex.automerge configuration setting, for the next
+release. There's also a `git annex sync --no-resolvemerge`
+"""]]
diff --git a/doc/git-annex-config.mdwn b/doc/git-annex-config.mdwn
index 8b505cde3..bf24251d8 100644
--- a/doc/git-annex-config.mdwn
+++ b/doc/git-annex-config.mdwn
@@ -32,6 +32,12 @@ These settings can be overridden on a per-repository basis using
Set to false to prevent the git-annex assistant and git-annex sync
from automatically committing changes to files in the repository.
+* `annex.resolvemerge`
+
+ Set to false to prevent merge conflicts being automatically resolved
+ by the git-annex assitant, git-annex sync, git-annex merge,
+ and the git-annex post-receive hook.
+
* `annex.synccontent`
Set to true to make git-annex sync default to syncing content.
diff --git a/doc/git-annex-merge.mdwn b/doc/git-annex-merge.mdwn
index 3001e9bed..bb204d725 100644
--- a/doc/git-annex-merge.mdwn
+++ b/doc/git-annex-merge.mdwn
@@ -12,6 +12,9 @@ This performs the same merging (and merge conflict resolution)
that is done by the sync command, but without pushing or pulling any
data.
+When annex.resolvemerge is set to false, merge conflict resolution
+will not be done.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex-sync.mdwn b/doc/git-annex-sync.mdwn
index a27d31565..2aa009cf8 100644
--- a/doc/git-annex-sync.mdwn
+++ b/doc/git-annex-sync.mdwn
@@ -21,11 +21,6 @@ worry about the details, you can use sync.
The content of annexed objects is not synced by default, but the --content
option (see below) can make that also be synchronized.
-Merge conflicts are automatically handled by sync. When two conflicting
-versions of a file have been committed, both will be added to the tree,
-under different filenames. For example, file "foo" would be replaced
-with "foo.somekey" and "foo.otherkey".
-
Note that syncing with a remote will not normally update the remote's working
tree with changes made to the local repository. (Unless it's configured
with receive.denyCurrentBranch=updateInstead.) However, those changes
@@ -114,6 +109,18 @@ by running "git annex sync" on the remote.
less efficient. When --content is synced, the files are processed
in parallel as well.
+* `--resolvemerge`, `--no-resolvemerge`
+
+ By default, merge conflicts are automatically handled by sync. When two
+ conflicting versions of a file have been committed, both will be added
+ to the tree, under different filenames. For example, file "foo"
+ would be replaced with "foo.variant-A" and "foo.variant-B". (See
+ [[git-annex-resolvemerge]](1) for details.)
+
+ Use `--no-resolvemerge` to disable this automatic merge conflict
+ resolution. It can also be disabled by setting annex.resolvemerge
+ to false.
+
# SEE ALSO
[[git-annex]](1)
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index 8a841a941..99f6c9076 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -1040,6 +1040,15 @@ Here are all the supported configuration settings.
To configure the behavior in all clones of the repository,
this can be set in [[git-annex-config]].
+* `annex.resolvemerge`
+
+ Set to false to prevent merge conflicts being automatically resolved
+ by the git-annex assitant, git-annex sync, git-annex merge,
+ and the git-annex post-receive hook.
+
+ To configure the behavior in all clones of the repository,
+ this can be set in [[git-annex-config]].
+
* `annex.synccontent`
Set to true to make git-annex sync default to syncing content.