Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
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)
Exemple #4
0
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
Exemple #5
0
 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)