ben*_*rre 4 svn git version-control
在我们的应用程序中,我们经常需要在发布分支上重命名文件/包,然后将此更改(以及许多其他更改)合并到主干.一个很大的问题是许多SCM解决方案(我们当前的SVN)不跟踪文件重命名.当我们将产品的发布分支合并到主干时,很容易丢失这些更改,因为SCM不够智能,不知道MyOriginalFileName和MyRenamedFileName是同一个文件/类/ etc.
在我看来,我们可能做错了什么,GIT处理这个问题的方法是什么?
我相信Git可以跟踪这个.
作为一个例子,我创建了一个测试git存储库,我在其中添加了一个名为test.txt的文件并提交了它.
然后我重命名了该文件并提交了我的更改.
这是我提交的git日志:
[master cf5c827] test
1 files changed, 0 insertions(+), 0 deletions(-)
rename test.txt => test_renamed.txt (100%)
Run Code Online (Sandbox Code Playgroud)
我建议使用git-svn从svn存储库创建一个git存储库.然后你可以玩它,看看它是否满足你的需求
Git 不使用重命名跟踪,但它使用基于启发式相似性的重命名检测。这意味着 Git 会比较/检查更改的文件并决定重命名,以及在解决合并期间哪些文件应匹配哪些文件。实际上,它运作得很好。
请注意,由于重命名检测算法的原因,如果您使用太简单的测试用例,它将无法工作;但在真正的合并中它应该工作得很好。
| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |