def test_working_tree(self):
     temp_dir = tempfile.mkdtemp()
     self.addCleanup(shutil.rmtree, temp_dir)
     worktree_temp_dir = tempfile.mkdtemp()
     self.addCleanup(shutil.rmtree, worktree_temp_dir)
     r = Repo.init(temp_dir)
     self.addCleanup(r.close)
     root_sha = r.do_commit(b'empty commit',
                            committer=b'Test Committer <*****@*****.**>',
                            author=b'Test Author <*****@*****.**>',
                            commit_timestamp=12345,
                            commit_timezone=0,
                            author_timestamp=12345,
                            author_timezone=0)
     r.refs[b'refs/heads/master'] = root_sha
     w = Repo._init_new_working_directory(worktree_temp_dir, r)
     self.addCleanup(w.close)
     new_sha = w.do_commit(b'new commit',
                           committer=b'Test Committer <*****@*****.**>',
                           author=b'Test Author <*****@*****.**>',
                           commit_timestamp=12345,
                           commit_timezone=0,
                           author_timestamp=12345,
                           author_timezone=0)
     w.refs[b'HEAD'] = new_sha
     self.assertEqual(os.path.abspath(r.controldir()),
                      os.path.abspath(w.commondir()))
     self.assertEqual(r.refs.keys(), w.refs.keys())
     self.assertNotEqual(r.head(), w.head())
예제 #2
0
 def setUp(self):
     super(InitNewWorkingDirectoryTestCase, self).setUp()
     self._other_worktree = self._repo
     worktree_repo_path = tempfile.mkdtemp()
     self.addCleanup(rmtree_ro, worktree_repo_path)
     self._repo = Repo._init_new_working_directory(worktree_repo_path,
                                                   self._mainworktree_repo)
     self.addCleanup(self._repo.close)
     self._number_of_working_tree = 3