예제 #1
0
def test_merge_head(tmpdir, Jagare):
    path = tmpdir.strpath
    git_dir = os.path.join(path, '.git')

    # `git merge` must be run in a work tree
    t_repo = JagareRepo.init(git_dir, work_path=path, bare=False)
    temp_repo.commit_something(git_dir, file_name='git_init')

    BR = 'br_test_merge'

    ret = t_repo.create_branch(BR, 'master')
    assert ret is True
    sha1 = t_repo.sha('master')

    temp_repo.commit_something(path, branch=BR)

    ret = Jagare.merge_head(path, BR)
    # sha2 = t_repo.sha('master')

    # assert sha1 != sha2
    assert t_repo.sha(sha1) == sha1

    assert ret.is_fastforward is True
    assert ret.fastforward_oid
    assert ret.is_uptodate is False
예제 #2
0
def test_merge_flow(tmpdir, no_ff, Jagare):
    path = tmpdir.mkdir('to').strpath
    from_repo_path = tmpdir.mkdir('from').strpath

    BR = 'br_test_merge'

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_repo = repo.clone(from_repo_path, branch='master',
                           bare=True)

    # commit more things to from_repo:BR
    ret = from_repo.create_branch(BR, 'master')
    assert ret is True
    temp_repo.commit_something(from_repo_path, branch=BR)

    # different repo: from -> to
    sha = Jagare.merge_flow(path, 'lh', '*****@*****.**',
                            'test_header', 'test_body',
                            from_repo_path, BR, 'master',
                            remote_name='hub/xxxproject', no_ff=no_ff)
    assert sha

    # same repo: from -> from
    sha = Jagare.merge_flow(from_repo_path, 'lh', '*****@*****.**',
                            'test_header', 'test_body',
                            from_repo_path, BR, 'master',
                            remote_name=None, no_ff=True)
    assert sha
예제 #3
0
def test_merge(tmpdir, no_ff, Jagare):
    path = tmpdir.strpath
    git_dir = os.path.join(path, '.git')

    # `git merge` must be run in a work tree
    t_repo = JagareRepo.init(git_dir,
                             work_path=path, bare=False)
    temp_repo.commit_something(git_dir, file_name='git_init')

    BR = 'br_test_merge'

    ret = t_repo.create_branch(BR, 'master')
    assert ret is True
    sha1 = t_repo.sha('master')

    temp_repo.commit_something(path, branch=BR)

    ret = Jagare.merge(path, ref=BR, msg=None, commit_msg=None,
                       no_ff=no_ff, env=None)
    sha2 = t_repo.sha('master')

    assert sha1 != sha2
    assert t_repo.sha(sha1) == sha1

    assert ret.stdout
    assert ret.stderr == ''
    assert ret.fullcmd
    assert ret.returncode == 0
예제 #4
0
def test_merge(tmpdir, no_ff, Jagare):
    path = tmpdir.strpath
    git_dir = os.path.join(path, '.git')

    # `git merge` must be run in a work tree
    t_repo = JagareRepo.init(git_dir, work_path=path, bare=False)
    temp_repo.commit_something(git_dir, file_name='git_init')

    BR = 'br_test_merge'

    ret = t_repo.create_branch(BR, 'master')
    assert ret is True
    sha1 = t_repo.sha('master')

    temp_repo.commit_something(path, branch=BR)

    ret = Jagare.merge(path,
                       ref=BR,
                       msg=None,
                       commit_msg=None,
                       no_ff=no_ff,
                       env=None)
    sha2 = t_repo.sha('master')

    assert sha1 != sha2
    assert t_repo.sha(sha1) == sha1

    assert ret.stdout
    assert ret.stderr == ''
    assert ret.fullcmd
    assert ret.returncode == 0
예제 #5
0
def test_merge_head(tmpdir, Jagare):
    path = tmpdir.strpath
    git_dir = os.path.join(path, '.git')

    # `git merge` must be run in a work tree
    t_repo = JagareRepo.init(git_dir,
                             work_path=path, bare=False)
    temp_repo.commit_something(git_dir, file_name='git_init')

    BR = 'br_test_merge'

    ret = t_repo.create_branch(BR, 'master')
    assert ret is True
    sha1 = t_repo.sha('master')

    temp_repo.commit_something(path, branch=BR)

    ret = Jagare.merge_head(path, BR)
    # sha2 = t_repo.sha('master')

    # assert sha1 != sha2
    assert t_repo.sha(sha1) == sha1

    assert ret.is_fastforward is True
    assert ret.fastforward_oid
    assert ret.is_uptodate is False
예제 #6
0
def test_update_head(tmpdir, Jagare):
    path = tmpdir.strpath
    t_repo = temp_repo.create_temp_repo(path, is_bare=False)
    t_repo.create_branch('br_test_update_head', 'master')

    head_sha = t_repo.head.target.hex
    temp_repo.commit_something(path)
    assert t_repo.head.target.hex != head_sha

    ret = Jagare.update_head(path, 'br_test_update_head')

    assert ret is True
    assert t_repo.head.target.hex == head_sha
예제 #7
0
def test_update_ref(tmpdir, Jagare):
    path = tmpdir.strpath
    t_repo = temp_repo.create_temp_repo(path, is_bare=False)

    assert t_repo.head.name == 'refs/heads/master'
    head_sha = t_repo.head.target.hex

    temp_repo.commit_something(path)
    assert t_repo.head.target.hex != head_sha
    ret = Jagare.update_ref(path, 'refs/heads/master', head_sha)

    assert ret is True
    assert t_repo.head.target.hex == head_sha
예제 #8
0
    def test_merge_flow(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        sha1 = repo.sha(BARE_REPO_OTHER_BRANCH)

        from_repo_path = self.get_temp_path()
        from_repo = repo.clone(from_repo_path,
                               branch=BARE_REPO_OTHER_BRANCH,
                               bare=True)
        ret = from_repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        commit_something(from_repo_path, branch=BR)

        tmpdir = self.get_temp_path()

        # different repo
        sha = repo.merge_flow('lh',
                              '*****@*****.**',
                              'test_header',
                              'test_body',
                              tmpdir,
                              from_repo_path,
                              BR,
                              BARE_REPO_OTHER_BRANCH,
                              remote_name='hub/xxxproject',
                              no_ff=True)
        assert sha

        sha2 = repo.sha(BARE_REPO_OTHER_BRANCH)

        assert sha1 != sha2
        assert repo.sha(sha1) == sha1

        # same repo
        tmpdir2 = self.get_temp_path()
        from_sha1 = from_repo.sha(BARE_REPO_OTHER_BRANCH)
        assert from_sha1 == sha1
        sha = from_repo.merge_flow('lh',
                                   '*****@*****.**',
                                   'test_header',
                                   'test_body',
                                   tmpdir2,
                                   from_repo_path,
                                   BR,
                                   BARE_REPO_OTHER_BRANCH,
                                   no_ff=True)
        assert sha
        from_sha2 = from_repo.sha(BARE_REPO_OTHER_BRANCH)
        assert from_sha1 != from_sha2
        assert from_repo.sha(from_sha1) == from_sha1
예제 #9
0
    def test_merge_commits(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        merge_index = repo.merge_commits(repo.head.target.hex, BR)
        assert merge_index['has_conflicts'] is False
예제 #10
0
    def test_merge_head(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        merge_result = repo.merge_head(BR)
        assert merge_result['is_fastforward']
예제 #11
0
def test_rev_list(tmpdir, Jagare):
    path = tmpdir.strpath

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_sha = repo.sha('master')
    temp_repo.commit_something(path)

    ret = Jagare.rev_list(path, to_ref='master', from_ref=from_sha,
                          file_path=None, skip=None, max_count=None,
                          author=None, query=None, first_parent=None,
                          since=None, no_merges=None)

    assert ret[0].committer
    assert ret[0].author
    assert ret[0].sha
    assert ret[0].type == 'commit'
예제 #12
0
파일: test_merge.py 프로젝트: CMGS/ellen
    def test_merge_head(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        merge_result = repo.merge_head(BR)
        assert merge_result['is_fastforward']
예제 #13
0
파일: test_merge.py 프로젝트: CMGS/ellen
    def test_merge_commits(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        merge_index = repo.merge_commits(repo.head.target.hex, BR)
        assert merge_index['has_conflicts'] == False
예제 #14
0
파일: test_merge.py 프로젝트: tclh123/ellen
    def test_can_merge(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'

        from_repo_path = self.get_temp_path()
        from_repo = repo.clone(from_repo_path, branch=BARE_REPO_OTHER_BRANCH,
                               bare=True)
        ret = from_repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        commit_something(from_repo_path, branch=BR)

        tmpdir = self.get_temp_path()

        ret = repo.can_merge(tmpdir,
                             from_repo_path, BR, BARE_REPO_OTHER_BRANCH,
                             remote_name='hub/xxxproject')
        assert ret is True
예제 #15
0
def test_show_tree(tmpdir, Jagare):
    path = tmpdir.strpath
    repo = temp_repo.create_temp_repo(path, is_bare=True)

    # create a tree
    temp_repo.commit_something(path,
                               file_name=os.path.join('test_tree', 'file'))

    ls = repo.ls_tree('master')
    trees = [item['sha'] for item in ls if item['type'] == 'tree']
    assert trees

    for sha in trees:

        ret = Jagare.show(path, sha)

        assert ret.tree
예제 #16
0
    def test_can_merge(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'

        from_repo_path = self.get_temp_path()
        from_repo = repo.clone(from_repo_path,
                               branch=BARE_REPO_OTHER_BRANCH,
                               bare=True)
        ret = from_repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        commit_something(from_repo_path, branch=BR)

        tmpdir = self.get_temp_path()

        ret = repo.can_merge(tmpdir,
                             from_repo_path,
                             BR,
                             BARE_REPO_OTHER_BRANCH,
                             remote_name='hub/xxxproject')
        assert ret is True
예제 #17
0
파일: test_merge.py 프로젝트: CMGS/ellen
    def _merge(self, no_ff):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        sha1 = repo.sha(BARE_REPO_OTHER_BRANCH)

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        ret = repo.merge(BR, no_ff=no_ff)
        sha2 = repo.sha(BARE_REPO_OTHER_BRANCH)

        assert sha1 != sha2
        assert repo.sha(sha1) == sha1
예제 #18
0
def test_can_merge(tmpdir, Jagare):
    path = tmpdir.mkdir('to').strpath
    from_repo_path = tmpdir.mkdir('from').strpath

    BR = 'br_test_merge'

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_repo = repo.clone(from_repo_path, branch='master',
                           bare=True)

    # commit more things to from_repo:BR
    ret = from_repo.create_branch(BR, 'master')
    assert ret is True
    temp_repo.commit_something(from_repo_path, branch=BR)

    # can_merge
    ret = Jagare.can_merge(path,
                           from_repo_path, BR, 'master',
                           remote_name='hub/xxxproject')
    assert ret is True
예제 #19
0
    def _merge(self, no_ff):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        path = self.get_temp_path()

        # repo has work-tree
        repo.clone(path, branch=BARE_REPO_OTHER_BRANCH)
        repo = Jagare(os.path.join(path, '.git'))

        ret = repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        sha1 = repo.sha(BARE_REPO_OTHER_BRANCH)

        commit_something(path, branch=BR)
        repo.update_head(BARE_REPO_OTHER_BRANCH)
        ret = repo.merge(BR, no_ff=no_ff)
        sha2 = repo.sha(BARE_REPO_OTHER_BRANCH)

        assert sha1 != sha2
        assert repo.sha(sha1) == sha1
예제 #20
0
def test_can_merge(tmpdir, Jagare):
    path = tmpdir.mkdir('to').strpath
    from_repo_path = tmpdir.mkdir('from').strpath

    BR = 'br_test_merge'

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_repo = repo.clone(from_repo_path, branch='master', bare=True)

    # commit more things to from_repo:BR
    ret = from_repo.create_branch(BR, 'master')
    assert ret is True
    temp_repo.commit_something(from_repo_path, branch=BR)

    # can_merge
    ret = Jagare.can_merge(path,
                           from_repo_path,
                           BR,
                           'master',
                           remote_name='hub/xxxproject')
    assert ret is True
예제 #21
0
def test_merge_flow(tmpdir, no_ff, Jagare):
    path = tmpdir.mkdir('to').strpath
    from_repo_path = tmpdir.mkdir('from').strpath

    BR = 'br_test_merge'

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_repo = repo.clone(from_repo_path, branch='master', bare=True)

    # commit more things to from_repo:BR
    ret = from_repo.create_branch(BR, 'master')
    assert ret is True
    temp_repo.commit_something(from_repo_path, branch=BR)

    # different repo: from -> to
    sha = Jagare.merge_flow(path,
                            'lh',
                            '*****@*****.**',
                            'test_header',
                            'test_body',
                            from_repo_path,
                            BR,
                            'master',
                            remote_name='hub/xxxproject',
                            no_ff=no_ff)
    assert sha

    # same repo: from -> from
    sha = Jagare.merge_flow(from_repo_path,
                            'lh',
                            '*****@*****.**',
                            'test_header',
                            'test_body',
                            from_repo_path,
                            BR,
                            'master',
                            remote_name=None,
                            no_ff=True)
    assert sha
예제 #22
0
파일: test_merge.py 프로젝트: tclh123/ellen
    def test_merge_flow(self):
        repo = Jagare(self.path)
        BR = 'br_test_merge'
        sha1 = repo.sha(BARE_REPO_OTHER_BRANCH)

        from_repo_path = self.get_temp_path()
        from_repo = repo.clone(from_repo_path, branch=BARE_REPO_OTHER_BRANCH,
                               bare=True)
        ret = from_repo.create_branch(BR, BARE_REPO_OTHER_BRANCH)
        assert ret
        commit_something(from_repo_path, branch=BR)

        tmpdir = self.get_temp_path()

        # different repo
        sha = repo.merge_flow('lh', '*****@*****.**',
                              'test_header', 'test_body', tmpdir,
                              from_repo_path, BR, BARE_REPO_OTHER_BRANCH,
                              remote_name='hub/xxxproject', no_ff=True)
        assert sha

        sha2 = repo.sha(BARE_REPO_OTHER_BRANCH)

        assert sha1 != sha2
        assert repo.sha(sha1) == sha1

        # same repo
        tmpdir2 = self.get_temp_path()
        from_sha1 = from_repo.sha(BARE_REPO_OTHER_BRANCH)
        assert from_sha1 == sha1
        sha = from_repo.merge_flow('lh', '*****@*****.**',
                                   'test_header', 'test_body', tmpdir2,
                                   from_repo_path, BR, BARE_REPO_OTHER_BRANCH,
                                   no_ff=True)
        assert sha
        from_sha2 = from_repo.sha(BARE_REPO_OTHER_BRANCH)
        assert from_sha1 != from_sha2
        assert from_repo.sha(from_sha1) == from_sha1
예제 #23
0
def test_rev_list(tmpdir, Jagare):
    path = tmpdir.strpath

    repo = temp_repo.create_temp_repo(path, is_bare=True)
    from_sha = repo.sha('master')
    temp_repo.commit_something(path)

    ret = Jagare.rev_list(path,
                          to_ref='master',
                          from_ref=from_sha,
                          file_path=None,
                          skip=None,
                          max_count=None,
                          author=None,
                          query=None,
                          first_parent=None,
                          since=None,
                          no_merges=None)

    assert ret[0].committer
    assert ret[0].author
    assert ret[0].sha
    assert ret[0].type == 'commit'