fix hardcoded origin name in checkAdjustedClone

init: Fix a crash when the repo's was cloned from a repo that had an
adjusted branch checked out, and the origin remote is not named "origin".

The only other hardcoding of the name of origin is in:

- Upgrade.V2, which can be ignored probably
- Annex.Branch, which doesn't fail if it has some other name, but just
  doesn't set up the git-annex branch with quite as linear a history in
  that case.
This commit is contained in:
Joey Hess 2021-04-14 18:53:27 -04:00
parent 4543774412
commit e1a9b79fa6
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 8 additions and 4 deletions

View file

@ -613,12 +613,12 @@ checkAdjustedClone = ifM isBareRepo
Just (adj, origbranch) -> do Just (adj, origbranch) -> do
let basis@(BasisBranch bb) = basisBranch (originalToAdjusted origbranch adj) let basis@(BasisBranch bb) = basisBranch (originalToAdjusted origbranch adj)
unlessM (inRepo $ Git.Ref.exists bb) $ do unlessM (inRepo $ Git.Ref.exists bb) $ do
unlessM (inRepo $ Git.Ref.exists origbranch) $ do
let remotebranch = Git.Ref.underBase "refs/remotes/origin" origbranch
inRepo $ Git.Branch.update' origbranch remotebranch
aps <- fmap commitParent <$> findAdjustingCommit (AdjBranch currbranch) aps <- fmap commitParent <$> findAdjustingCommit (AdjBranch currbranch)
case aps of case aps of
Just [p] -> setBasisBranch basis p Just [p] -> do
unlessM (inRepo $ Git.Ref.exists origbranch) $
inRepo $ Git.Branch.update' origbranch p
setBasisBranch basis p
_ -> giveup $ "Unable to clean up from clone of adjusted branch; perhaps you should check out " ++ Git.Ref.describe origbranch _ -> giveup $ "Unable to clean up from clone of adjusted branch; perhaps you should check out " ++ Git.Ref.describe origbranch
return InAdjustedClone return InAdjustedClone

View file

@ -10,6 +10,8 @@ git-annex (8.20210331) UNRELEASED; urgency=medium
* fsck: When downloading content from a remote, if the content is able * fsck: When downloading content from a remote, if the content is able
to be verified during the transfer, skip checksumming it a second time. to be verified during the transfer, skip checksumming it a second time.
* directory: When cp supports reflinks, use it. * directory: When cp supports reflinks, use it.
* init: Fix a crash when the repo's was cloned from a repo that had an
adjusted branch checked out, and the origin remote is not named "origin".
-- Joey Hess <id@joeyh.name> Thu, 01 Apr 2021 12:17:26 -0400 -- Joey Hess <id@joeyh.name> Thu, 01 Apr 2021 12:17:26 -0400

View file

@ -51,3 +51,5 @@ overriding `annex.crippledfilesystem`. Entering an adjusted branch in
`a` is sufficient to trigger this. `a` is sufficient to trigger this.
[[!tag projects/datalad]] [[!tag projects/datalad]]
> [[fixed|done]] --[[Joey]]