Пример #1
0
    def testGitShare(self):
        shareBase = os.path.join(self.tmpdir, 'git-repos')
        rev = git.git(self.repodir, self.wc, shareBase=shareBase)
        shareDir = os.path.join(shareBase, git.get_repo_name(self.repodir))
        self.assertEquals(rev, self.revisions[-1])

        # We should see all the revisions
        revs = getRevisions(
            self.wc, branches=['origin/master', 'origin/branch2'])
        shared_revs = getRevisions(
            shareDir, branches=['origin/master', 'origin/branch2'])

        self.assertEquals(revs, shared_revs)
        self.assertEquals(revs, self.revisions)

        # Update to a different rev
        rev = git.git(self.repodir, self.wc,
                      revision=self.revisions[0], shareBase=shareBase)
        self.assertEquals(rev, self.revisions[0])
        self.assertFalse(os.path.exists(os.path.join(self.wc, 'newfile')))

        # Add a commit to the original repo
        run_cmd(['touch', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'add', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=self.repodir)
        new_rev = getRevisions(self.repodir)[-1]

        # Update to the new rev
        rev = git.git(
            self.repodir, self.wc, revision=new_rev, shareBase=shareBase)
        self.assertEquals(rev, new_rev)
        self.assertTrue(os.path.exists(os.path.join(self.wc, 'newfile')))
Пример #2
0
    def testGitTag(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Now try and update to a tag
        rev = git.git(self.repodir, self.wc, revision="TAG1")
        self.assertEquals(rev, self.revisions[0])
Пример #3
0
    def testGitTag(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Now try and update to a tag
        rev = git.git(self.repodir, self.wc, revision="TAG1")
        self.assertEquals(rev, self.revisions[0])
Пример #4
0
 def testClean(self):
     git.git(self.repodir, self.wc)
     try:
         f = open(os.path.join(self.wc, 'blaaah'), 'w')
         f.write('blah')
     finally:
         if not f.closed:
             f.close()
     git.clean(self.wc)
     self.assertFalse(os.path.exists(os.path.join(self.wc, 'blaaah')))
Пример #5
0
 def testGitCleanDest(self):
     rev = git.git(self.repodir, self.wc)
     try:
         f = open(os.path.join(self.wc, 'blaaah'), 'w')
         f.write('blah')
     finally:
         if not f.closed:
             f.close()
     rev = git.git(self.repodir, self.wc, clean_dest=True)
     self.assertFalse(os.path.exists(os.path.join(self.wc, 'blaaah')))
Пример #6
0
 def testClean(self):
     git.git(self.repodir, self.wc)
     try:
         f = open(os.path.join(self.wc, 'blaaah'), 'w')
         f.write('blah')
     finally:
         if not f.closed:
             f.close()
     git.clean(self.wc)
     self.assertFalse(os.path.exists(os.path.join(self.wc, 'blaaah')))
Пример #7
0
 def testGitCleanDest(self):
     rev = git.git(self.repodir, self.wc)
     try:
         f = open(os.path.join(self.wc, 'blaaah'), 'w')
         f.write('blah')
     finally:
         if not f.closed:
             f.close()
     rev = git.git(self.repodir, self.wc, clean_dest=True)
     self.assertFalse(os.path.exists(os.path.join(self.wc, 'blaaah')))
Пример #8
0
    def testGit(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])
        self.assertEquals(getRevisions(self.wc, branches=[
                          'origin/master', 'origin/branch2']), self.revisions)
        self.assertTrue(os.path.exists(os.path.join(self.wc, 'hello.txt')))
        self.assertTrue("Is this thing on" in open(
            os.path.join(self.wc, 'hello.txt')).read())

        # Switch branches, make sure we get the right content
        rev = git.git(self.repodir, self.wc, refname='branch2')
        self.assertEquals(rev, self.revisions[1])
        self.assertFalse("Is this thing on" in open(
            os.path.join(self.wc, 'hello.txt')).read())
Пример #9
0
    def testGit(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])
        self.assertEquals(
            getRevisions(self.wc, branches=['origin/master',
                                            'origin/branch2']), self.revisions)
        self.assertTrue(os.path.exists(os.path.join(self.wc, 'hello.txt')))
        self.assertTrue("Is this thing on" in open(
            os.path.join(self.wc, 'hello.txt')).read())

        # Switch branches, make sure we get the right content
        rev = git.git(self.repodir, self.wc, refname='branch2')
        self.assertEquals(rev, self.revisions[1])
        self.assertFalse("Is this thing on" in open(
            os.path.join(self.wc, 'hello.txt')).read())
Пример #10
0
    def testGitBadRev(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Now try and update to a bad revision
        self.assertRaises(subprocess.CalledProcessError, git.git,
                          self.repodir, self.wc, revision="badrev")
Пример #11
0
 def testGitBadDest(self):
     # Create self.wc without .git
     os.makedirs(self.wc)
     rev = git.git(self.repodir, self.wc)
     self.assertEquals(rev, self.revisions[-1])
     self.assertTrue(os.path.exists(os.path.join(self.wc, 'hello.txt')))
     self.assertTrue("Is this thing on" in open(
         os.path.join(self.wc, 'hello.txt')).read())
Пример #12
0
    def testGitRev(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Update to a different rev
        rev = git.git(self.repodir, self.wc, revision=self.revisions[1])
        self.assertEquals(rev, self.revisions[1])

        # Make a new commit in repodir
        run_cmd(['touch', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'add', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=self.repodir)
        new_rev = getRevisions(self.repodir)[-1]

        rev = git.git(self.repodir, self.wc, revision=new_rev)

        self.assertEquals(new_rev, rev)
Пример #13
0
    def testGitRev(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Update to a different rev
        rev = git.git(self.repodir, self.wc, revision=self.revisions[1])
        self.assertEquals(rev, self.revisions[1])

        # Make a new commit in repodir
        run_cmd(['touch', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'add', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=self.repodir)
        new_rev = getRevisions(self.repodir)[-1]

        rev = git.git(self.repodir, self.wc, revision=new_rev)

        self.assertEquals(new_rev, rev)
Пример #14
0
    def testGitMirrors(self):
        # Create a bad mirror and a good mirror
        mirror1 = os.path.join(self.tmpdir, 'mirror1')
        mirror2 = os.path.join(self.tmpdir, 'mirror2')
        git.git(self.repodir, mirror2, update_dest=False)

        rev = git.git(self.repodir, self.wc, mirrors=[mirror1, mirror2])
        self.assertEquals(rev, self.revisions[-1])

        # Add a commit to the mirror
        run_cmd(['touch', 'newfile'], cwd=mirror2)
        run_cmd(['git', 'add', 'newfile'], cwd=mirror2)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=mirror2)
        new_rev = getRevisions(mirror2)[-1]

        # Now clone using the mirror. We should get the new commit that's in
        # the mirror
        rev = git.git(self.repodir, self.wc, mirrors=[mirror1, mirror2])
        self.assertEquals(rev, new_rev)
Пример #15
0
    def testGitBadRev(self):
        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])

        # Now try and update to a bad revision
        self.assertRaises(subprocess.CalledProcessError,
                          git.git,
                          self.repodir,
                          self.wc,
                          revision="badrev")
Пример #16
0
    def testGitMirrors(self):
        # Create a bad mirror and a good mirror
        mirror1 = os.path.join(self.tmpdir, 'mirror1')
        mirror2 = os.path.join(self.tmpdir, 'mirror2')
        git.git(self.repodir, mirror2, update_dest=False)

        rev = git.git(self.repodir, self.wc, mirrors=[mirror1, mirror2])
        self.assertEquals(rev, self.revisions[-1])

        # Add a commit to the mirror
        run_cmd(['touch', 'newfile'], cwd=mirror2)
        run_cmd(['git', 'add', 'newfile'], cwd=mirror2)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=mirror2)
        new_rev = getRevisions(mirror2)[-1]

        # Now clone using the mirror. We should get the new commit that's in
        # the mirror
        rev = git.git(self.repodir, self.wc, mirrors=[mirror1, mirror2])
        self.assertEquals(rev, new_rev)
Пример #17
0
    def testGitBadDest(self):
        # Create self.wc without .git
        os.makedirs(self.wc)
        self.assertFalse(git.is_git_repo(self.wc))

        rev = git.git(self.repodir, self.wc)
        self.assertEquals(rev, self.revisions[-1])
        self.assertTrue(os.path.exists(os.path.join(self.wc, 'hello.txt')))
        self.assertTrue("Is this thing on" in open(
            os.path.join(self.wc, 'hello.txt')).read())
Пример #18
0
    def testGitShare(self):
        shareBase = os.path.join(self.tmpdir, 'git-repos')
        rev = git.git(self.repodir, self.wc, shareBase=shareBase)
        shareDir = os.path.join(shareBase, git.get_repo_name(self.repodir))
        self.assertEquals(rev, self.revisions[-1])

        # We should see all the revisions
        revs = getRevisions(self.wc,
                            branches=['origin/master', 'origin/branch2'])
        shared_revs = getRevisions(
            shareDir, branches=['origin/master', 'origin/branch2'])

        self.assertEquals(revs, shared_revs)
        self.assertEquals(revs, self.revisions)

        # Update to a different rev
        rev = git.git(self.repodir,
                      self.wc,
                      revision=self.revisions[0],
                      shareBase=shareBase)
        self.assertEquals(rev, self.revisions[0])
        self.assertFalse(os.path.exists(os.path.join(self.wc, 'newfile')))

        # Add a commit to the original repo
        newfile = os.path.join(self.repodir, 'newfile')
        touch(newfile)
        run_cmd(['git', 'add', 'newfile'], cwd=self.repodir)
        run_cmd(['git', 'commit', '-q', '-m', 'add newfile'], cwd=self.repodir)
        new_rev = getRevisions(self.repodir)[-1]

        # Update to the new rev
        rev = git.git(self.repodir,
                      self.wc,
                      revision=new_rev,
                      shareBase=shareBase)
        self.assertEquals(rev, new_rev)
        self.assertTrue(os.path.exists(os.path.join(self.wc, 'newfile')))
                        format="%(asctime)s %(message)s")

    if len(args) not in (1, 2):
        parser.error("Invalid number of arguments")

    repo = args[0]
    if len(args) == 2:
        dest = args[1]
    else:
        dest = os.path.basename(repo)

    # Parse propsfile
    if options.propsfile:
        js = json.load(open(options.propsfile))
        if options.revision is None:
            options.revision = js['sourcestamp']['revision']
        if options.branch is None:
            options.branch = js['sourcestamp']['branch']

    got_revision = git(
        repo,
        dest,
        options.branch,
        options.revision,
        shareBase=options.shared_dir,
        mirrors=options.mirrors,
        clean_dest=options.clean,
    )

    print "Got revision %s" % got_revision
Пример #20
0
    options, args = parser.parse_args()

    logging.basicConfig(
        level=options.loglevel, format="%(asctime)s %(message)s")

    if len(args) not in (1, 2):
        parser.error("Invalid number of arguments")

    repo = args[0]
    if len(args) == 2:
        dest = args[1]
    else:
        dest = os.path.basename(repo)

    # Parse propsfile
    if options.propsfile:
        js = json.load(open(options.propsfile))
        if options.revision is None:
            options.revision = js['sourcestamp']['revision']
        if options.branch is None:
            options.branch = js['sourcestamp']['branch']

    got_revision = git(repo, dest, options.branch, options.revision,
                       shareBase=options.shared_dir,
                       mirrors=options.mirrors,
                       clean_dest=options.clean,
                       )

    print "Got revision %s" % got_revision
Пример #21
0
 def testGitBadShare(self):
     shareBase = os.path.join(self.tmpdir, 'git-repos')
     open(shareBase, 'w').write("hello!")
     rev = git.git(self.repodir, self.wc, shareBase=shareBase)
     self.assertEquals(rev, self.revisions[-1])
Пример #22
0
 def testGitBadShare(self):
     shareBase = os.path.join(self.tmpdir, 'git-repos')
     open(shareBase, 'w').write("hello!")
     rev = git.git(self.repodir, self.wc, shareBase=shareBase)
     self.assertEquals(rev, self.revisions[-1])