Summary: | git-r3.eclass fails to src_unpack() submodule as: "refusing to update ref with bad name" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sergei Trofimovich (RETIRED) <slyfox> |
Component: | Eclasses | Assignee: | Michał Górny <mgorny> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Sergei Trofimovich (RETIRED)
2016-01-18 21:57:34 UTC
I'll try to take a look at this today. If you happen to have some extra time, could you confirm whether it's complaining about the dot, or something else? Removing a dot certainly changes error message into better direction: ghc.git $ git update-ref --no-deref refs/git-r3/dev-lang/ghc/0/.arc-linters/arcanist-external-json-linter/__main__ 85ece0f8653e7b1e7de6024d372cfeaf36ab5fa9 fatal: update_ref failed for ref 'refs/git-r3/dev-lang/ghc/0/.arc-linters/arcanist-external-json-linter/__main__': refusing to update ref with bad name refs/git-r3/dev-lang/ghc/0/.arc-linters/arcanist-external-json-linter/__main__ ghcgit $ git update-ref --no-deref refs/git-r3/dev-lang/ghc/0/arc-linters/arcanist-external-json-linter/__main__ 85ece0f8653e7b1e7de6024d372cfeaf36ab5fa9 fatal: update_ref failed for ref 'refs/git-r3/dev-lang/ghc/0/arc-linters/arcanist-external-json-linter/__main__': cannot update the ref 'refs/git-r3/dev-lang/ghc/0/arc-linters/arcanist-external-json-linter/__main__': Trying to write ref refs/git-r3/dev-lang/ghc/0/arc-linters/arcanist-external-json-linter/__main__ with nonexistent object 85ece0f8653e7b1e7de6024d372cfeaf36ab5fa9 Looks like a good list: https://github.com/git/git/blob/master/refs.c#L39 /* * Try to read one refname component from the front of refname. * Return the length of the component found, or -1 if the component is * not legal. It is legal if it is something reasonable to have under * ".git/refs/"; We do not like it if: * * - any path component of it begins with ".", or * - it has double dots "..", or * - it has ASCII control characters, or * - it has ":", "?", "[", "\", "^", "~", SP, or TAB anywhere, or * - it has "*" anywhere unless REFNAME_REFSPEC_PATTERN is set, or * - it ends with a "/", or * - it ends with ".lock", or * - it contains a "@{" portion */ I'm sorry this is taking this long. I'm currently working on it, and should have a solution today. While at it, I've discovered that https://git.haskell.org seems not to support shallow clones: git fetch https://git.haskell.org/ghc.git +HEAD:refs/git-r3/HEAD --depth 1 fatal: The remote end hung up unexpectedly fatal: protocol error: bad pack header In case you haven't noticed it, this means you'd need to set EGIT_MIN_CLONE_TYPE in the ebuild. commit 9dd95690e6f4ff62d66595eb2e0f78c223b32a3e Author: Michał Górny <mgorny@gentoo.org> Date: Fri Feb 5 15:35:19 2016 git-r3.eclass: Filter out /. components from submodule refs, #572312 |