Hi Guido, Sorry for all the noise lately! Have another question for you:
In git-ubuntu, we are starting to heavily use git-worktrees, so that we can have temporary locations that checkout different commits/trees/etc than HEAD. This is very useful for us, e.g., when linting arbitrary commits without having to worry about restoring state in the cwd. In a recent change I am testing, we made it so that some of our gbp call paths also occur from a worktree. However, it seems like gbp (at least gbp-buildpackage) does not like that too much :) After doing some hacking on the snap's _check_repo, I see this: ... 01/11/2018 13:15:11 - DEBUG:Executing: gbp buildpackage --git-builder=/bin/true --git-pristine-tar --git-ignore-branch '--git-upstream-tag=pkg/upstream/ubuntu/%(version)s.bz2' 01/11/2018 13:15:11 - ERROR:Command exited 1: gbp buildpackage --git-builder=/bin/true --git-pristine-tar --git-ignore-branch '--git-upstream-tag=pkg/upstream/ubuntu/%(version)s.bz2' 01/11/2018 13:15:11 - ERROR:stdout: path = . abspath = /tmp/tmp2qsiies4 toplevel = False out = b'/home/nacc/tmp/strongswan\n' dummy = b'' ret = 0 cdup = /home/nacc/tmp/strongswan path = . abspath = /tmp/tmp2qsiies4 toplevel = True out = b'/home/nacc/tmp/strongswan\n' dummy = b'' ret = 0 cdup = /home/nacc/tmp/strongswan 01/11/2018 13:15:11 - ERROR:stderr: gbp:error: /tmp/tmp2qsiies4 is not a git repository Traceback (most recent call last): File "/snap/git-ubuntu/x1/bin/gbp", line 11, in <module> load_entry_point('gbp==0.9.6', 'console_scripts', 'gbp')() File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/scripts/supercommand.py", line 145, in supercommand return module.main(args) File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/scripts/buildpackage.py", line 478, in main repo = DebianGitRepository(os.path.curdir) File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/deb/git.py", line 41, in __init__ super(DebianGitRepository, self).__init__(*args, **kwargs) File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/pkg/git.py", line 36, in __init__ super(PkgGitRepository, self).__init__(*args, **kwargs) File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/git/repository.py", line 136, in __init__ self._path = self._check_repo(path, toplevel) File "/snap/git-ubuntu/x1/lib/python3.6/site-packages/gbp/git/repository.py", line 119, in _check_repo raise GitRepositoryError("Not the toplevel of a Git repository at '%s': '%s'" % (path, cdup)) gbp.git.repository.GitRepositoryError: Not the toplevel of a Git repository at '.': '/home/nacc/tmp/strongswan' Which seems to me, that it's making what was a sensible error before worktrees were introduced, if I understand the code correctly. If we are intending to be invoked from the top level of a Git repository and cdup is non-empty, then we must not be at the top level of a Git repository? Except in the case of worktrees, I think, where we might be in a different directory than the Git directory -- but still have access to the samee Does it make sense to perhaps change the condition in _check_repo that if the cdup is not an absolute path (starting with '/'?) that then the error condition is still true. Thanks, Nish _______________________________________________ git-buildpackage mailing list git-buildpackage@lists.sigxcpu.org http://lists.sigxcpu.org/mailman/listinfo/git-buildpackage