def test_unaffected_without_issues(self): repo = self.get_repo() empty_tree = self.get_empty_tree_oid(repo) root = repo.create_commit(REF, SIG, SIG, 'root', empty_tree, []) repo.create_commit(REF, SIG, SIG, 'leaf', empty_tree, [root]) del repo before = self.get_repo_filelist() changelog, _ = shift(42, self.repo_path) self.assertEqual(changelog, {}) after = self.get_repo_filelist() self.assertEqual(before, after)
def test_unaffected_with_0_amount(self): repo = self.get_repo() empty_tree = self.get_empty_tree_oid(repo) root = repo.create_commit(REF, SIG, SIG, 'root #1', empty_tree, []) repo.create_commit(REF, SIG, SIG, 'leaf #2', empty_tree, [root]) del repo before = self.get_repo_filelist() changelog, _ = shift(0, self.repo_path) for old, new in changelog.iteritems(): self.assertEqual(old, new) after = self.get_repo_filelist() self.assertEqual(before, after)
def main(args): try: amount, repo_path = args[1:3] amount = int(amount) except ValueError: raise InvalidUsageError(args[0]) try: db_url = args[3] test_db_connection(db_url) except IndexError: db_url = None changelog, reference = shift(int(amount), repo_path) print('HEAD is shifted as', reference) if db_url is not None: map_changelog(db_url, changelog)
def solve(puzzle): oldsol = None sol = None i = 0 while True: i += 1 placer.place(puzzle) sol = numpy.copy(puzzle.sol) moved = shifter.shift(puzzle) if not moved: break if puzzle.hasonlyonesegment(): break if oldsol is not None: if (oldsol == puzzle.sol).all(): break if i > 100: break oldsol = numpy.copy(puzzle.sol) return sol
def test_merged_tree(self): repo = self.get_repo() empty_tree = self.get_empty_tree_oid(repo) root = repo.create_commit(REF, SIG, SIG, 'root #1', empty_tree, []) leaf = repo.create_commit(REF, SIG, SIG, 'leaf #2', empty_tree, [root]) side = repo.create_commit(REF, SIG, SIG, '#3 side', empty_tree, [root]) repo.create_commit(REF, SIG, SIG, 'merge #4', empty_tree, [leaf, side]) del repo changelog, reference = shift(10, self.repo_path) self.assertEqual(len(changelog), 4) repo = self.get_repo() registr_head = repo.lookup_reference(reference).resolve() commit = repo[registr_head.oid] self.assertEqual(commit.message, 'merge #14') self.assertEqual(len(commit.parents), 2) for parent in commit.parents: self.assertEqual(len(parent.parents), 1) self.assertEqual(parent.parents[0].message, 'root #11') c1, c2 = sorted(commit.parents, key=attrgetter('message')) self.assertEqual(c1.message, '#13 side') self.assertEqual(c2.message, 'leaf #12') self.assertEqual(c1.parents[0].oid, c2.parents[0].oid)