29e73f76ef
The former can be useful to make remotes that don't get fully synced with local changes, which comes up in a lot of situations. The latter was mostly added for symmetry, but could be useful (though less likely to be). Implementing `remote.<name>.annex-pull` was a bit tricky, as there's no one place where git-annex pulls/fetches from remotes. I audited all instances of "fetch" and "pull". A few cases were left not checking this config: * Git.Repair can try to pull missing refs from a remote, and if the local repo is corrupted, that seems a reasonable thing to do even though the config would normally prevent it. * Assistant.WebApp.Gpg and Remote.Gcrypt and Remote.Git do fetches as part of the setup process of a remote. The config would probably not be set then, and having the setup fail seems worse than honoring it if it is already set. I have not prevented all the code that does a "merge" from merging branches from remotes with remote.<name>.annex-pull=false. That could perhaps be done, but it would need a way to map from branch name to remote name, and the way refspecs work makes that hard to get really correct. So if the user fetches manually, the git-annex branch will get merged, for example. Anther way of looking at/justifying this is that the setting is called "annex-pull", not "annex-merge". This commit was supported by the NSF-funded DataLad project. |
||
---|---|---|
.. | ||
ActionItem.hs | ||
Availability.hs | ||
Backend.hs | ||
BranchState.hs | ||
CleanupActions.hs | ||
Command.hs | ||
Concurrency.hs | ||
Creds.hs | ||
Crypto.hs | ||
DeferredParse.hs | ||
DesktopNotify.hs | ||
Difference.hs | ||
Distribution.hs | ||
FileMatcher.hs | ||
GitConfig.hs | ||
Group.hs | ||
Key.hs | ||
KeySource.hs | ||
LockCache.hs | ||
Messages.hs | ||
MetaData.hs | ||
NumCopies.hs | ||
RefSpec.hs | ||
Remote.hs | ||
ScheduledActivity.hs | ||
StandardGroups.hs | ||
StoreRetrieve.hs | ||
Test.hs | ||
Transfer.hs | ||
TrustLevel.hs | ||
UrlContents.hs | ||
UUID.hs | ||
View.hs |