Package: mercurial-common Version: 1.0.1-5.1 Severity: normal Tags: patch
When trying to convert a git repository to a mercurial one on debian lenny the following error occurs. $ hg convert -s git . assuming destination .-hg abort: cannot find required "git" tool This is because the convert tool assumes dashed git command names (e.g. 'git-rev-parse' instead of 'git rev-parse'). In lenny the git commands were reorganized so that the full git-cmd names were no longer in the default path and 'git cmd' must be used instead. The fix seems relatively simple though. -Ron -- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.28.7-x200 (SMP w/2 CPU cores; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages mercurial-common depends on: ii python 2.5.2-3 An interactive high-level object-o ii python-support 0.8.4 automated rebuilding support for P Versions of packages mercurial-common recommends: ii mercurial 1.0.1-5.1 Scalable distributed version contr mercurial-common suggests no packages. -- no debconf information
--- a/hgext/convert/git.py +++ b/hgext/convert/git.py @@ -32,20 +32,20 @@ if not os.path.exists(path + "/objects"): raise NoRepo("%s does not look like a Git repo" % path) - checktool('git-rev-parse', 'git') + checktool('git', 'git') self.path = path def getheads(self): if not self.rev: - return self.gitcmd('git-rev-parse --branches').read().splitlines() + return self.gitcmd('git rev-parse --branches').read().splitlines() else: - fh = self.gitcmd("git-rev-parse --verify %s" % self.rev) + fh = self.gitcmd("git rev-parse --verify %s" % self.rev) return [fh.read()[:-1]] def catfile(self, rev, type): if rev == "0" * 40: raise IOError() - fh = self.gitcmd("git-cat-file %s %s" % (type, rev)) + fh = self.gitcmd("git cat-file %s %s" % (type, rev)) return fh.read() def getfile(self, name, rev): @@ -56,7 +56,7 @@ def getchanges(self, version): self.modecache = {} - fh = self.gitcmd("git-diff-tree --root -m -r %s" % version) + fh = self.gitcmd("git diff-tree --root -m -r %s" % version) changes = [] seen = {} for l in fh: @@ -109,7 +109,7 @@ def gettags(self): tags = {} - fh = self.gitcmd('git-ls-remote --tags "%s"' % self.path) + fh = self.gitcmd('git ls-remote --tags "%s"' % self.path) prefix = 'refs/tags/' for line in fh: line = line.strip() @@ -126,7 +126,7 @@ def getchangedfiles(self, version, i): changes = [] if i is None: - fh = self.gitcmd("git-diff-tree --root -m -r %s" % version) + fh = self.gitcmd("git diff-tree --root -m -r %s" % version) for l in fh: if "\t" not in l: continue @@ -134,7 +134,7 @@ changes.append(f) fh.close() else: - fh = self.gitcmd('git-diff-tree --name-only --root -r %s "%s^%s" --' + fh = self.gitcmd('git diff-tree --name-only --root -r %s "%s^%s" --' % (version, version, i+1)) changes = [f.rstrip('\n') for f in fh] fh.close()