我使用reposurgeon将我的svn转换为git存储库,链接在这里:(如何使用reposurgeon将svn repo转换为git?)。
问题是,转换后的标签出现在创建标签的位置而不是它们所属的修订版本位置。在SVN中,无论我何时创建标签,它们都会显示在它们应该出现的日志右侧。
似乎这与reposurgeon在每个标签中添加一个.gitignore提交有关,看起来像这样:
我该如何让reposurgeon不在所有标签中为gitignore创建这样的提交?并让它创建简单的标签,这些标签不会出现在时间线上作为提交? reposurgeon手册中说:
用户生成的.gitignore 这个消息意味着reposurgeon在分析的Subversion仓库中找到了.gitignore文件。这可能是因为有人正在使用git-svn作为实时网关,并创建了一些忽略文件,这些文件可能与将被转换为Subversion忽略属性的生成的.gitignore文件中的文件相符,也可能不相符。您需要就使用哪个忽略集合做出决策,并可能删除生成的.gitignore文件或用户创建的文件。
但没有例子说明如何做出这个决定。我该如何管理这个问题?
问题是,转换后的标签出现在创建标签的位置而不是它们所属的修订版本位置。在SVN中,无论我何时创建标签,它们都会显示在它们应该出现的日志右侧。
似乎这与reposurgeon在每个标签中添加一个.gitignore提交有关,看起来像这样:
# A simulation of Subversion default ignores, generated by reposurgeon.
*.o
*.lo
...
*.pyo
*.rej
*~
.#*
.*.swp
.DS_store
# The contents of the svn:ignoreproperty on the branch root.
*~
nbproject
*.project
我该如何让reposurgeon不在所有标签中为gitignore创建这样的提交?并让它创建简单的标签,这些标签不会出现在时间线上作为提交? reposurgeon手册中说:
用户生成的.gitignore 这个消息意味着reposurgeon在分析的Subversion仓库中找到了.gitignore文件。这可能是因为有人正在使用git-svn作为实时网关,并创建了一些忽略文件,这些文件可能与将被转换为Subversion忽略属性的生成的.gitignore文件中的文件相符,也可能不相符。您需要就使用哪个忽略集合做出决策,并可能删除生成的.gitignore文件或用户创建的文件。
但没有例子说明如何做出这个决定。我该如何管理这个问题?
git-filter-branch
进行一些额外的“手术”来使转换后的存储库看起来符合你的要求。可以做一些像完全从历史记录中删除文件、编辑历史记录中的文件、移动标签等操作,但很难对此提供通用答案。 - 6EQUJ5.gitignore
文件的创建。 - rubo77