sync: print a hint about receive.denyNonFastForwards when a push fails
This commit is contained in:
parent
d3fbb8acd5
commit
2af652e1b8
3 changed files with 13 additions and 10 deletions
|
@ -184,7 +184,11 @@ pushRemote remote branch = go =<< needpush
|
||||||
showStart "push" (Remote.name remote)
|
showStart "push" (Remote.name remote)
|
||||||
next $ next $ do
|
next $ next $ do
|
||||||
showOutput
|
showOutput
|
||||||
inRepo $ pushBranch remote branch
|
ok <- inRepo $ pushBranch remote branch
|
||||||
|
unless ok $ do
|
||||||
|
warning $ unwords [ "Pushing to " ++ Remote.name remote ++ " failed." ]
|
||||||
|
showNote "(non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)"
|
||||||
|
return ok
|
||||||
|
|
||||||
{- Pushes a regular branch like master to a remote. Also pushes the git-annex
|
{- Pushes a regular branch like master to a remote. Also pushes the git-annex
|
||||||
- branch.
|
- branch.
|
||||||
|
@ -211,6 +215,9 @@ pushRemote remote branch = go =<< needpush
|
||||||
- But overwriting of data on synced/git-annex can happen, in a race.
|
- But overwriting of data on synced/git-annex can happen, in a race.
|
||||||
- The only difference caused by using a forced push in that case is that
|
- The only difference caused by using a forced push in that case is that
|
||||||
- the last repository to push wins the race, rather than the first to push.
|
- the last repository to push wins the race, rather than the first to push.
|
||||||
|
-
|
||||||
|
- The sync push will fail to overwrite if receive.denyNonFastforwards is
|
||||||
|
- set on the remote.
|
||||||
-}
|
-}
|
||||||
pushBranch :: Remote -> Git.Ref -> Git.Repo -> IO Bool
|
pushBranch :: Remote -> Git.Ref -> Git.Repo -> IO Bool
|
||||||
pushBranch remote branch g = tryIO (directpush g) `after` syncpush g
|
pushBranch remote branch g = tryIO (directpush g) `after` syncpush g
|
||||||
|
|
|
@ -1,12 +1,3 @@
|
||||||
## 4.20131025
|
|
||||||
|
|
||||||
Note that all past versions of the assistant, when used to create a
|
|
||||||
git repository on a ssh server, set up the repository in a way that
|
|
||||||
prevents `git annex sync` from working (although the assistant can sync
|
|
||||||
with it). To fix this misconfiguration, you can ssh to the server
|
|
||||||
and run this command inside the bare git repository:
|
|
||||||
`git config receive.denyNonFastforwards false`
|
|
||||||
|
|
||||||
## version 4.20131024
|
## version 4.20131024
|
||||||
|
|
||||||
This version fixes several different bugs that could cause the webapp to
|
This version fixes several different bugs that could cause the webapp to
|
||||||
|
|
|
@ -377,3 +377,8 @@ $
|
||||||
|
|
||||||
# End of transcript or log.
|
# End of transcript or log.
|
||||||
"""]]
|
"""]]
|
||||||
|
|
||||||
|
> Apparently `test.git` had `receive.denyNonFastForwards`
|
||||||
|
> set to true, which prevents the forced pushing `git annex sync`
|
||||||
|
> needs to do. I have made it print out a hint about this setting
|
||||||
|
> when a push failes. [[done]] --[[Joey]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue