Hi gregor,

Thanks for investigating.

  https://salsa.debian.org/agx/git-buildpackage/-/merge_requests/84

should fix it (I assume that wasn't always part of for-each-ref).
Cheers,
 -- Guido

On Wed, Mar 04, 2026 at 05:21:51PM +0100, gregor herrmann wrote:
> On Sat, 01 Jul 2023 22:28:01 +0200, Reiner Herrmann wrote:
> 
> > I sometimes use the salsa tool from devscripts to clone repositories
> > from salsa. It uses "gbp clone --all" to do that.
> > I noticed that I have branches named "origin" that were created by gbp
> > (they don't exist in the remote repository).
> 
> Same here (with dpt-checkout, which also uses "gbp clone --all").
> 
> > For example:
> > $ gbp clone --all -v https://salsa.debian.org/reiner/deheader
> > gbp:debug: ['git', 'rev-parse', '--show-cdup']
> > gbp:info: Cloning from 'https://salsa.debian.org/reiner/deheader'
> > gbp:debug: ['git', 'clone', '--quiet', 
> > 'https://salsa.debian.org/reiner/deheader']
> > gbp:debug: ['git', 'rev-parse', '--show-cdup']
> > gbp:debug: ['git', 'rev-parse', '--is-bare-repository']
> > gbp:debug: ['git', 'rev-parse', '--git-dir']
> > gbp:debug: ['git', 'rev-parse', '--show-cdup']
> > gbp:debug: ['git', 'rev-parse', '--is-bare-repository']
> > gbp:debug: ['git', 'rev-parse', '--git-dir']
> > gbp:debug: ['git', 'for-each-ref', '--format=%(refname:short)', 
> > 'refs/remotes/']
> > gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/origin']
> > gbp:debug: ['git', 'branch', 'origin', 'origin']
> > gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/master']
> > gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/pristine-tar']
> > gbp:debug: ['git', 'branch', 'pristine-tar', 'origin/pristine-tar']
> > gbp:debug: ['git', 'show-ref', '--verify', 'refs/heads/upstream']
> > gbp:debug: ['git', 'branch', 'upstream', 'origin/upstream']
> > gbp:debug: ['git', 'show-ref', '--verify', 'refs/remotes/master']
> > gbp:debug: ['git', 'ls-tree', '-z', '-r', '-l', 'HEAD', '--']
> > $ cd deheader/
> > $ git branch
> > * master         origin         pristine-tar   upstream
> > $ git for-each-ref '--format=%(refname:short)' 'refs/remotes/'
> > origin/HEAD
> > origin/master
> > origin/pristine-tar
> > origin/upstream
> 
> I untangled the debug output a bit more to see where the "origin" is coming
> from:
> 
> % git clone --verbose 
> '[email protected]:perl-team/modules/packages/libconfig-model-tkui-perl.git'
> Cloning into 'libconfig-model-tkui-perl'...
> remote: Enumerating objects: 6932, done.
> remote: Total 6932 (delta 0), reused 0 (delta 0), pack-reused 6932 (from 1)
> Receiving objects: 100% (6932/6932), 2.67 MiB | 2.60 MiB/s, done.
> Resolving deltas: 100% (3964/3964), done.
> 
> % cd libconfig-model-tkui-perl
> 
> % git branch --all --verbose
> * master                      5b3a9a6 Update changelog for 1.381-1 release
>   remotes/origin/HEAD         -> origin/master
>   remotes/origin/experimental 40f43d2 Update changelog for 1.374-1 release
>   remotes/origin/master       5b3a9a6 Update changelog for 1.381-1 release
>   remotes/origin/pristine-tar 4df6a36 pristine-tar data for 
> libconfig-model-tkui-perl_1.379.orig.tar.gz
>   remotes/origin/upstream     9739302 v1.381
> 
> % git for-each-ref --format="%(refname:short)" refs/remotes/
> origin
> origin/experimental
> origin/master
> origin/pristine-tar
> origin/upstream
> 
> Aha!
> 
> And then the for-each-ref loop seen above runs, inter alia, `git branch
> origin origin'. Et voila …
> 
> 
> 
> Maybe the pattern in the git-for-each-ref could be tightened a bit? Random
> try, probably too tight:
> 
> % git for-each-ref --format="%(refname:short)" "refs/remotes/origin/[a-z]*"
> origin/experimental
> origin/master
> origin/pristine-tar
> origin/upstream
> 
> 
> 
> Cheers,
> gregor
> 
> 
> 
> -- 
>  .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
>  : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
>  `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
>    `-

Reply via email to