On Sun, 2010-12-05 at 09:38 -0600, Augie Fackler wrote: > Not awake. Ignore this too (the other one where I finally *didn't* screw up > already arrived here.) Heh, join the club. :-) Thanks for the patch, it's been merged into trunk.
Cheers, Jelmer > On Dec 5, 2010, at 9:36 AM, Augie Fackler wrote: > > > # HG changeset patch > > # User Augie Fackler <[email protected]> > > # Date 1290987945 -21600 > > # Node ID 93fdf6e95f5115e811d3d15fdce9f3730c1c2e84 > > # Parent 1acb5f1c39c3873890372f9f76d873d35f576002 > > repo: fix error in repo.init{,_bare} where all repositories were marked bare > > > > Includes simple tests to verify bare = (true|false) in .git/config is > > correct. > > > > Change-Id: I607d16ae845c61eb1d3de4753dd810476735b5f1 > > > > diff --git a/dulwich/repo.py b/dulwich/repo.py > > --- a/dulwich/repo.py > > +++ b/dulwich/repo.py > > @@ -763,13 +763,13 @@ > > self.object_store = object_store > > self.refs = refs > > > > - def _init_files(self): > > + def _init_files(self, bare): > > """Initialize a default set of named files.""" > > self._put_named_file('description', "Unnamed repository") > > self._put_named_file('config', ('[core]\n' > > 'repositoryformatversion = 0\n' > > 'filemode = true\n' > > - 'bare = ' + str(self.bare).lower() > > + '\n' > > + 'bare = ' + str(bare).lower() + > > '\n' > > 'logallrefupdates = true\n')) > > self._put_named_file(os.path.join('info', 'exclude'), '') > > > > @@ -1187,23 +1187,27 @@ > > return "<Repo at %r>" % self.path > > > > @classmethod > > + def _init_maybe_bare(cls, path, bare): > > + for d in BASE_DIRECTORIES: > > + os.mkdir(os.path.join(path, *d)) > > + DiskObjectStore.init(os.path.join(path, OBJECTDIR)) > > + ret = cls(path) > > + ret.refs.set_symbolic_ref("HEAD", "refs/heads/master") > > + ret._init_files(bare) > > + return ret > > + > > + @classmethod > > def init(cls, path, mkdir=False): > > if mkdir: > > os.mkdir(path) > > controldir = os.path.join(path, ".git") > > os.mkdir(controldir) > > - cls.init_bare(controldir) > > + cls._init_maybe_bare(controldir, False) > > return cls(path) > > > > @classmethod > > def init_bare(cls, path): > > - for d in BASE_DIRECTORIES: > > - os.mkdir(os.path.join(path, *d)) > > - DiskObjectStore.init(os.path.join(path, OBJECTDIR)) > > - ret = cls(path) > > - ret.refs.set_symbolic_ref("HEAD", "refs/heads/master") > > - ret._init_files() > > - return ret > > + return cls._init_maybe_bare(path, True) > > > > create = init_bare > > > > @@ -1254,5 +1258,5 @@ > > ret.object_store.add_object(obj) > > for refname, sha in refs.iteritems(): > > ret.refs[refname] = sha > > - ret._init_files() > > + ret._init_files(True) > > return ret > > diff --git a/dulwich/tests/test_repository.py > > b/dulwich/tests/test_repository.py > > --- a/dulwich/tests/test_repository.py > > +++ b/dulwich/tests/test_repository.py > > @@ -66,24 +66,35 @@ > > finally: > > f.close() > > > > - def _check_repo_contents(self, repo): > > - self.assertTrue(repo.bare) > > + def _check_repo_contents(self, repo, expect_bare): > > + self.assertEquals(expect_bare, repo.bare) > > self.assertFileContentsEqual('Unnamed repository', repo, > > 'description') > > self.assertFileContentsEqual('', repo, os.path.join('info', > > 'exclude')) > > self.assertFileContentsEqual(None, repo, 'nonexistent file') > > + barestr = 'bare = %s' % str(expect_bare).lower() > > + self.assertTrue(barestr in repo.get_named_file('config').read()) > > > > - def test_create_disk(self): > > + def test_create_disk_bare(self): > > tmp_dir = tempfile.mkdtemp() > > try: > > repo = Repo.init_bare(tmp_dir) > > self.assertEquals(tmp_dir, repo._controldir) > > - self._check_repo_contents(repo) > > + self._check_repo_contents(repo, True) > > + finally: > > + shutil.rmtree(tmp_dir) > > + > > + def test_create_disk_non_bare(self): > > + tmp_dir = tempfile.mkdtemp() > > + try: > > + repo = Repo.init(tmp_dir) > > + self.assertEquals(os.path.join(tmp_dir, '.git'), > > repo._controldir) > > + self._check_repo_contents(repo, False) > > finally: > > shutil.rmtree(tmp_dir) > > > > def test_create_memory(self): > > repo = MemoryRepo.init_bare([], {}) > > - self._check_repo_contents(repo) > > + self._check_repo_contents(repo, True) > > > > > > class RepositoryTests(TestCase): > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~dulwich-users > > Post to : [email protected] > > Unsubscribe : https://launchpad.net/~dulwich-users > > More help : https://help.launchpad.net/ListHelp >
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Mailing list: https://launchpad.net/~dulwich-users Post to : [email protected] Unsubscribe : https://launchpad.net/~dulwich-users More help : https://help.launchpad.net/ListHelp

