Beispiel #1
0
 def testCloneModifyPush(self):
     new_repo = LocalRepository(utils.get_temporary_location())
     new_repo.clone(self.repo)
     self.assertReposEqual(self.repo, new_repo)
     utils.commit_change(new_repo)
     new_repo.push()
     self.repo.resetHard()
     self.assertReposEqual(self.repo, new_repo)        
     utils.delete_repository(new_repo)
Beispiel #2
0
 def testCloneModifyPush(self):
     new_repo = LocalRepository(utils.get_temporary_location())        
     new_repo.clone(self.repo)
     #checkout a different branch to comply with git 1.7.0
     prev_branch = self.repo.getCurrentBranch()
     self.repo.checkout(self.repo.createBranch('temp'))        
     self.assertReposEqual(self.repo, new_repo)
     utils.commit_change(new_repo)
     new_repo.push()
     self.repo.checkout(prev_branch)        
     self.assertReposEqual(self.repo, new_repo)        
     utils.delete_repository(new_repo)
Beispiel #3
0
 def setUp(self):
     path1 = utils.get_temporary_location()
     path2 = utils.get_temporary_location()
     path2 = os.path.join(path2, "repo")
     self.repo1 = LocalRepository(path1)
     self.repo1.init()
     for i in range(10):
         with open(os.path.join(self.repo1.path, "file_%s.txt" % i), "wb") as output:
             print >>output, "This is file", i
     self.repo1.addAll()
     self.repo1.commit(message="init")
     self.repo2 = LocalRepository(path2)
     self.repo2.clone(self.repo1)
     self.assertTrue(os.path.isdir(self.repo2.path))
Beispiel #4
0
 def setUp(self):
     path1 = utils.get_temporary_location()
     path2 = utils.get_temporary_location()
     path2 = os.path.join(path2, "repo")
     self.repo1 = LocalRepository(path1)
     self.repo1.init()
     for i in range(10):
         with open(os.path.join(self.repo1.path, "file_%s.txt" % i),
                   "wb") as output:
             print >> output, "This is file", i
     self.repo1.addAll()
     self.repo1.commit(message="init")
     self.repo2 = LocalRepository(path2)
     self.repo2.clone(self.repo1)
     self.assertTrue(os.path.isdir(self.repo2.path))
Beispiel #5
0
 def testCloneRebaseModifyPush(self):
     new_repo = LocalRepository(utils.get_temporary_location())
     new_repo.clone(self.repo)
     prev_branch = self.repo.getCurrentBranch()
     #checkout a different branch to comply with git 1.7.0
     self.repo.checkout(self.repo.createBranch('temp'))
     self.assertReposEqual(self.repo, new_repo)
     utils.commit_change(self.repo)
     utils.commit_change(new_repo)
     new_repo.fetch()
     new_repo.rebase('origin/master')
     new_repo.push()
     self.repo.checkout(prev_branch)
     self.assertReposEqual(self.repo, new_repo)        
     utils.delete_repository(new_repo)
Beispiel #6
0
class EmptyRepositoryTest(unittest.TestCase):
    def setUp(self):
        self.dirname = get_temporary_location()
        self.repo = LocalRepository(self.dirname)
        self.assertFalse(os.path.exists(self.dirname))
        self.assertFalse(self.repo.isValid())
    def tearDown(self):
        if os.path.exists(self.dirname):
            delete_repository(self.repo)
Beispiel #7
0
def create_repo():
    returned = LocalRepository(get_temporary_location())
    returned.init()
    for i in range(10):
        filename = "file_%s.txt" % i
        full_filename = os.path.join(returned.path, filename)
        with open(full_filename, "wb") as f:
            print >> f, "initial content"
        returned.add(filename)
    returned.commit(message="initial")
    return returned
Beispiel #8
0
class EmptyRepositoryTest(unittest.TestCase):
    def setUp(self):
        self.dirname = get_temporary_location()
        self.repo = LocalRepository(self.dirname)
        self.assertFalse(os.path.exists(self.dirname))
        self.assertFalse(self.repo.isValid())

    def tearDown(self):
        if os.path.exists(self.dirname):
            delete_repository(self.repo)
def get_app_git_revision():
    git_info = {'branch': 'Unknown', 'revision': 'Unknown', 'updated': 'Unknown'}
    try:
        from git import LocalRepository
        from datetime import datetime

        repo = LocalRepository(ABSOLUTE_PROJECT_PATH)
        branch = repo.getCurrentBranch()
        rev = repo.getHead()
        updated = rev.getDate()
        git_info.update({
            'repo': repo,
            'branch': branch,
            'revision': rev.name,
            'rev': rev.hash[:10],
            'updated': datetime.utcfromtimestamp(updated),
        })
    except Exception, e:
        print e
Beispiel #10
0
def create_repo():
    returned = LocalRepository(get_temporary_location())
    returned.init()
    for i in range(10):
        filename = "file_%s.txt" % i
        full_filename = os.path.join(returned.path, filename)
        with open(full_filename, "wb") as f:
            print >> f, "initial content"
        returned.add(filename)
    returned.commit(message="initial")
    return returned
Beispiel #11
0
    def __init__(self, rootdir=None):
        if not rootdir:
            self.rootdir = Config().get("working_repo")
        else:
            self.rootdir = rootdir

        # gitpy hardcodes the git command without a path, so it's using PATH to find it.  We need to set the path for
        # git.
        dir = dirname(Config().get('git'))
        environ['PATH'] = "%s:%s" % (dir, environ['PATH'])
        repo = LocalRepository(self.rootdir)

        self.repo = repo
Beispiel #12
0
 def setUp(self):
     self.dirname = get_temporary_location()
     self.repo = LocalRepository(self.dirname)
     self.assertFalse(os.path.exists(self.dirname))
     self.assertFalse(self.repo.isValid())
Beispiel #13
0
class CollaborationTest(unittest.TestCase):
    def setUp(self):
        path1 = utils.get_temporary_location()
        path2 = utils.get_temporary_location()
        path2 = os.path.join(path2, "repo")
        self.repo1 = LocalRepository(path1)
        self.repo1.init()
        for i in range(10):
            with open(os.path.join(self.repo1.path, "file_%s.txt" % i),
                      "wb") as output:
                print >> output, "This is file", i
        self.repo1.addAll()
        self.repo1.commit(message="init")
        self.repo2 = LocalRepository(path2)
        self.repo2.clone(self.repo1)
        self.assertTrue(os.path.isdir(self.repo2.path))

    def tearDown(self):
        utils.delete_repository(self.repo1)
        utils.delete_repository(self.repo2)

    def testRemotePushBranches(self):
        b = self.repo2.createBranch("branch")
        self.repo1.createBranch('remote_branch')
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName('origin').getBranchByName(
            'remote_branch')
        b.setRemoteBranch(remote_branch)
        self.assertEquals(b.getRemoteBranch(), remote_branch)
        b.setRemoteBranch(None)
        self.assertEquals(b.getRemoteBranch(), None)
        # try setting to None multiple times
        b.setRemoteBranch(None)

    def testCollaboration(self):
        new_file_base_name = "new_file.txt"
        new_filename = os.path.join(self.repo1.path, new_file_base_name)
        with open(new_filename, "wb") as f:
            print >> f, "hello there!"
        self.assertTrue(new_file_base_name in self.repo1.getUntrackedFiles())
        self.repo1.addAll()
        self.assertTrue(
            any(f.filename == new_file_base_name
                for f in self.repo1.getStagedFiles()))
        c = self.repo1.commit(message="add file")
        self.assertFalse(
            os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.repo2.pull()
        self.assertTrue(
            os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.assertTrue(c in self.repo2)

    def testRemoteBranchDeletion(self):
        self.repo1.createBranch("testme")
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName("origin").getBranchByName(
            "testme")
        self.assertEquals(remote_branch.getHead(),
                          self.repo1.getBranchByName("testme").getHead())
        remote_branch.delete()
        try:
            self.repo1.getBranchByName("testme")
        except NonexistentRefException:
            pass
        else:
            self.fail("Did not fail!")
Beispiel #14
0
class CollaborationTest(unittest.TestCase):
    def setUp(self):
        path1 = utils.get_temporary_location()
        path2 = utils.get_temporary_location()
        path2 = os.path.join(path2, "repo")
        self.repo1 = LocalRepository(path1)
        self.repo1.init()
        for i in range(10):
            with open(os.path.join(self.repo1.path, "file_%s.txt" % i), "wb") as output:
                print >>output, "This is file", i
        self.repo1.addAll()
        self.repo1.commit(message="init")
        self.repo2 = LocalRepository(path2)
        self.repo2.clone(self.repo1)
        self.assertTrue(os.path.isdir(self.repo2.path))
    def tearDown(self):
        utils.delete_repository(self.repo1)
        utils.delete_repository(self.repo2)

    def testRemotePushBranches(self):
        b = self.repo2.createBranch("branch")
        self.repo1.createBranch('remote_branch')
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName('origin').getBranchByName('remote_branch')
        b.setRemoteBranch(remote_branch)
        self.assertEquals(b.getRemoteBranch(), remote_branch)
        b.setRemoteBranch(None)
        self.assertEquals(b.getRemoteBranch(), None)
        # try setting to None multiple times
        b.setRemoteBranch(None)
    def testCollaboration(self):
        new_file_base_name = "new_file.txt"
        new_filename = os.path.join(self.repo1.path, new_file_base_name)
        with open(new_filename, "wb") as f:
            print >> f, "hello there!"
        self.assertTrue(new_file_base_name in self.repo1.getUntrackedFiles())
        self.repo1.addAll()
        self.assertTrue(any(f.filename == new_file_base_name for f in self.repo1.getStagedFiles()))
        c = self.repo1.commit(message="add file")
        self.assertFalse(os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.repo2.pull()
        self.assertTrue(os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.assertTrue(c in self.repo2)
    def testRemoteBranchDeletion(self):
        self.repo1.createBranch("testme")
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName("origin").getBranchByName("testme")
        self.assertEquals(remote_branch.getHead(), self.repo1.getBranchByName("testme").getHead())
        remote_branch.delete()
        try:
            self.repo1.getBranchByName("testme")
        except NonexistentRefException:
            pass
        else:
            self.fail("Did not fail!")
Beispiel #15
0
 def setUp(self):
     self.dirname = get_temporary_location()
     self.repo = LocalRepository(self.dirname)
     self.assertFalse(os.path.exists(self.dirname))
     self.assertFalse(self.repo.isValid())
Beispiel #16
0
 def testAddingRemotes(self):
     new_repo = LocalRepository(utils.get_temporary_location())
     new_repo.init()
     with open(os.path.join(new_repo.path, "some_file"), "wb") as f:
         print >> f, "new file"
     new_repo.addAll()
     new_repo.commit(message="initial change")
     REMOTE_NAME = 'remote'
     remote = new_repo.addRemote(REMOTE_NAME, self.repo.path)
     self.assertEquals(remote.name, REMOTE_NAME)
     self.assertEquals(remote.url, self.repo.path)
     self.assertFalse(new_repo.containsCommit(self.repo.getHead()))
     remote.fetch()
     remote.prune()
     self.assertTrue(new_repo.containsCommit(self.repo.getHead()))
     branches = list(remote.getBranches())
     self.assertTrue(len(branches) > 0)
     for branch in branches:
         self.assertTrue(type(branch in new_repo.getHead()) is bool)
Beispiel #17
0
 def testAddingRemotes(self):
     new_repo = LocalRepository(utils.get_temporary_location())
     new_repo.init()
     with open(os.path.join(new_repo.path, "some_file"), "wb") as f:
         print >> f, "new file"
     new_repo.addAll()
     new_repo.commit(message="initial change")
     REMOTE_NAME = 'remote'
     remote = new_repo.addRemote(REMOTE_NAME, self.repo.path)
     self.assertEquals(remote.name, REMOTE_NAME)
     self.assertEquals(remote.url, self.repo.path)
     self.assertFalse(new_repo.containsCommit(self.repo.getHead()))
     remote.fetch()
     remote.prune()
     self.assertTrue(new_repo.containsCommit(self.repo.getHead()))
     branches = list(remote.getBranches())
     self.assertTrue(len(branches) > 0)
     for branch in branches:
         self.assertTrue(type(branch in new_repo.getHead()) is bool)