# HG changeset patch # User Augie Fackler # Date 1265476435 21600 # Node ID f0159775e0f126165a6bad69f2220481e3579d02 # Parent b97f5734e5a850db71fbc17bd26292c6b2a36b85 utility_commands: fix hg svn genignore for single-directory mode diff --git a/hgsubversion/utility_commands.py b/hgsubversion/utility_commands.py --- a/hgsubversion/utility_commands.py +++ b/hgsubversion/utility_commands.py @@ -17,12 +17,16 @@ def genignore(ui, repo, force=False, **o hashes = meta.revmap.hashes() parent = util.parentrev(ui, repo, meta, hashes) r, br = hashes[parent.node()] - branchpath = br and ('branches/%s' % br) or 'trunk' + if meta.layout == 'single': + branchpath = '' + else: + branchpath = br and ('branches/%s/' % br) or 'trunk/' ignorelines = ['.hgignore', 'syntax:glob'] dirs = [''] + [d[0] for d in svn.list_files(branchpath, r) if d[1] == 'd'] for dir in dirs: - props = svn.list_props('%s/%s/' % (branchpath, dir), r) + path = '%s%s' % (branchpath, dir) + props = svn.list_props(path, r) if 'svn:ignore' not in props: continue lines = props['svn:ignore'].strip().split('\n') diff --git a/tests/test_utility_commands.py b/tests/test_utility_commands.py --- a/tests/test_utility_commands.py +++ b/tests/test_utility_commands.py @@ -212,6 +212,15 @@ class UtilityTests(test_util.TestBase): self.assertEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n') + def test_genignore_single(self): + self._load_fixture_and_fetch('ignores.svndump', subdir='trunk') + hg.update(self.repo, 'tip') + u = ui.ui() + u.pushbuffer() + utility_commands.genignore(u, self.repo, self.wc_path) + self.assertStringEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), + '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n') + def test_list_authors(self): test_util.load_svndump_fixture(self.repo_path, 'replace_trunk_with_branch.svndump')