sync: As well as the synced/git-annex push, attempt a git-annex:git-annex push, as long as the remote branch is an ancestor of the local branch, to better support bare git repos.

See my comment in the bug report for analysis; basically this is safe
because it's a non-forced push, so won't lose history. Even if it was a
forced push or somehow races, things will eventually become consistent and
no git-annex branch info will be lost.

(This used to be done, but it forgot to do it since version 4.20130909.)
This commit is contained in:
Joey Hess 2015-02-27 14:49:56 -04:00
parent 1082b1dbdb
commit 289881bdb8
3 changed files with 22 additions and 1 deletions

View file

@ -315,7 +315,9 @@ pushBranch remote branch g = tryIO (directpush g) `after` syncpush g
, refspec branch
]
directpush = Git.Command.runQuiet $ pushparams
[Git.fromRef $ Git.Ref.base $ fromDirectBranch branch]
[ Git.fromRef $ Git.Ref.base $ Annex.Branch.name
, Git.fromRef $ Git.Ref.base $ fromDirectBranch branch
]
pushparams branches =
[ Param "push"
, Param $ Remote.name remote