def disable_ff_and_make_dummy_commit(self): # disable non-fast-forward pushes to the server dest = repo.Repo(os.path.join(self.gitroot, 'dest')) run_git_or_fail(['config', 'receive.denyNonFastForwards', 'true'], cwd=dest.path) b = objects.Blob.from_string('hi') dest.object_store.add_object(b) t = index.commit_tree(dest.object_store, [('hi', b.id, 0100644)])
def test_push_to_dulwich(self): self.import_repos() self.assertReposNotEqual(self._old_repo, self._new_repo) port = self._start_server(self._old_repo) run_git_or_fail(['push', self.url(port)] + self.branch_args(), cwd=self._new_repo.path) self.assertReposEqual(self._old_repo, self._new_repo)
def test_fetch_from_dulwich(self): self.import_repos() self.assertReposNotEqual(self._old_repo, self._new_repo) port = self._start_server(self._new_repo) run_git_or_fail(['fetch', self.url(port)] + self.branch_args(), cwd=self._old_repo.path) # flush the pack cache so any new packs are picked up self._old_repo.object_store._pack_cache = None self.assertReposEqual(self._old_repo, self._new_repo)
def setUp(self): CompatTestCase.setUp(self) DulwichClientTestBase.setUp(self) if check_for_daemon(limit=1): raise TestSkipped('git-daemon was already running on port %s' % protocol.TCP_GIT_PORT) fd, self.pidfile = tempfile.mkstemp(prefix='dulwich-test-git-client', suffix=".pid") os.fdopen(fd).close() run_git_or_fail( ['daemon', '--verbose', '--export-all', '--pid-file=%s' % self.pidfile, '--base-path=%s' % self.gitroot, '--detach', '--reuseaddr', '--enable=receive-pack', '--listen=localhost', self.gitroot], cwd=self.gitroot) if not check_for_daemon(): raise TestSkipped('git-daemon failed to start')
def test_copy(self): origpack = self.get_pack(pack1_sha) self.assertSucceeds(origpack.index.check) pack_path = os.path.join(self._tempdir, "Elch") write_pack(pack_path, [(x, "") for x in origpack.iterobjects()], len(origpack)) output = run_git_or_fail(['verify-pack', '-v', pack_path]) pack_shas = set() for line in output.splitlines(): sha = line[:40] try: binascii.unhexlify(sha) except TypeError: continue # non-sha line pack_shas.add(sha) orig_shas = set(o.id for o in origpack.iterobjects()) self.assertEquals(orig_shas, pack_shas)
def _run_git(self, args): return run_git_or_fail(args, cwd=self._repo.path)
def setUp(self): self.gitroot = os.path.dirname(import_repo_to_dir('server_new.export')) dest = os.path.join(self.gitroot, 'dest') file.ensure_dir_exists(dest) run_git_or_fail(['init', '--quiet', '--bare'], cwd=dest)