Example #1
0
 def init_mapping(self):
     if self.tokenized_git_repo_url is not None:
         (
             self.tokenized_git_to_mercurial,
             self.mercurial_to_tokenized_git,
         ) = microannotate_utils.get_commit_mapping(
             self.tokenized_git_repo_dir)
Example #2
0
    def init_mapping(self):
        logger.info("Downloading Mercurial <-> git mapping file...")
        vcs_map.download_mapfile()

        self.tokenized_git_to_mercurial, self.mercurial_to_tokenized_git = microannotate_utils.get_commit_mapping(
            self.tokenized_git_repo_dir
        )
def test_generate_tokenized(fake_hg_repo, tmpdir):
    hg, local = fake_hg_repo

    git_repo = os.path.join(tmpdir.strpath, "repo")

    add_file(
        hg,
        local,
        "file.cpp",
        """#include <iostream>

/* main */
int main() {
    return 0;
}""",
    )
    revision1 = commit(hg)

    add_file(
        hg,
        local,
        "file.cpp",
        """#include <iostream>

/* main */
int main() {
    cout << "Hello, world!";
    return 0;
}""",
    )
    add_file(
        hg,
        local,
        "file.jsm",
        """function ciao(str) {
  // Comment one
  console.log(str);
}""",
    )
    revision2 = commit(hg)

    assert (generator.generate(
        local,
        git_repo,
        rev_start=0,
        rev_end="tip",
        limit=None,
        tokenize=True,
        remove_comments=False,
    ) is True)

    repo = pygit2.Repository(git_repo)
    commits = list(
        repo.walk(repo.head.target,
                  pygit2.GIT_SORT_TOPOLOGICAL | pygit2.GIT_SORT_REVERSE))

    assert (commits[0].message == f"""Commit A file.cpp

UltraBlame original commit: {revision1}""")

    assert (commits[1].message == f"""Commit M file.cpp A file.jsm

UltraBlame original commit: {revision2}""")

    with open(os.path.join(git_repo, "file.cpp"), "r") as f:
        cpp_file = f.read()
        assert (cpp_file == """#
include
<
iostream
>
/
*
main
*
/
int
main
(
)
{
cout
<
<
"
Hello
world
!
"
;
return
0
;
}
""")

    with open(os.path.join(git_repo, "file.jsm"), "r") as f:
        js_file = f.read()
        assert (js_file == """function
ciao
(
str
)
{
/
/
Comment
one
console
.
log
(
str
)
;
}
""")

    assert utils.get_original_hash(repo, "HEAD") == revision2
    assert utils.get_original_hash(repo, commits[0].hex) == revision1
    assert utils.get_original_hash(repo, commits[1].hex) == revision2
    transformed_to_original, original_to_transformed = utils.get_commit_mapping(
        git_repo)
    assert transformed_to_original[commits[0].hex] == revision1
    assert transformed_to_original[commits[1].hex] == revision2
    assert original_to_transformed[revision1] == commits[0].hex
    assert original_to_transformed[revision2] == commits[1].hex