我做了很多搜索,但找不到这个问题的答案.如果它是重复的道歉.
我想知道git在现有svn结账时初始化回购(用于本地使用)是否有任何问题,但不使用git-svn.
这是我的情景:
svn并且不熟悉git.git; 我对它的熟悉程度并不像我一样熟悉svn.git(如分支,存储等).git-svn(虽然我计划将来).svn专门使用客户端与存储库进行交互.(所以我清楚地了解我在做什么,svn并没有得到任何奇怪的互动).我在想,我会永远做svn update并commit从git主分支.当我处理功能时,我会与主人合并.
有没人试过这个?有任何令人讨厌的缺点或副作用吗?提示?
TL; DR:是的,你可以,但这比仅仅学习更难git-svn.
我试过了.您遇到的主要问题是将svn up操作转换为Git提交.我见过两种方法:
添加您的.svn文件夹.gitignore,因此您永远不会让Git跟踪您的Subversion元数据.这意味着你有Subversion和Git分别跟踪你的工作副本,因此对一个操作的任何操作都需要在另一个上执行类似的操作.
除非你仔细考虑如何使用存储库,否则使用Subversion合并,分支和开关非常舒服,并确保仔细使用它们来匹配你使用Git对存储库执行的操作,你将失去Git分支模型的大部分优势.
.svn使用Git 跟踪您的文件夹.这意味着,例如,如果您执行了a svn up和a git commit,然后签出了旧的Git提交,则Subversion元数据将正确匹配.
这意味着您可以更轻松地使用Git的分支功能,但是使用Git跟踪Subversion元数据还存在许多其他问题.主要的一个(至少对于Subversion 1.6,我不知道1.7)是.svn目录中的空文件夹是重要的,但Git不跟踪空文件夹,因此它们将被删除而不会发出警告.
我使用方法1一段时间,但发现它给了我Git和Subversion的所有最差的位,没有什么优势,并且意味着所有操作都需要完成两次以完成任何事情.
我的一位同事使用方法2已经有一段时间了,但是他写了一大堆帮助脚本来让他这样做.特别是,他的脚本将遍历工作副本并修复任何.svn需要添加空文件夹的目录.设置起来需要做很多工作,但这意味着他至少可以使用Git的大部分功能.遗憾的是,我无法访问相关脚本.
经过git-svn一段时间的使用,我可以保证它比其中任何一个选项更容易,即使是作为Git的初学者.我建议保留一个Subversion工作副本,以便在你现在需要做某些事情并且没有时间检查使用Git的最佳方法时,或者在git-svn有限的情况下做你需要的事情.它要做.git-svn我认为,学习曲线并不比常规Git困难得多,特别是因为您不需要学习使用远程Git存储库的任何知识.
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |