我一直在XCode工作一段时间的项目。我一直在使用xcode快照作为基本的版本控制。但是,我已经决定,现在是时候进入一个真正的SCM系统,所以我打算创建一个存储库并将我的项目导入到SVN中。
我的问题是:有没有办法将我的快照历史记录导入到SVN中,以便我在我创建的新SVN项目存储库中拥有我以前(快照)更改的完整历史记录?
任何信息将不胜感激。
谢谢。
我一直在XCode工作一段时间的项目。我一直在使用xcode快照作为基本的版本控制。但是,我已经决定,现在是时候进入一个真正的SCM系统,所以我打算创建一个存储库并将我的项目导入到SVN中。
我的问题是:有没有办法将我的快照历史记录导入到SVN中,以便我在我创建的新SVN项目存储库中拥有我以前(快照)更改的完整历史记录?
任何信息将不胜感激。
谢谢。
我想通过说snapshot
你意味着你存储整个项目树在不同的文件夹或创建某种类型的档案。在这种情况下,这里有你需要遵循的步骤:
svn admin
命令)也有这样的概念作为changeset
或diff
或patch
。在存储差异而不是快照的情况下,工作流程会有所不同。而不是仅将快照复制到工作副本(在第4步),您需要将相应的补丁(diff)应用于工作副本。
确实如此,但步骤4可能并不像听起来那么简单。必须注意确保在版本控制系统中正确处理添加,删除,重命名和移动,这些版本控制系统在发生此类操作时要明确告知(当使用纯粹的基于内容的系统(如Git)时,这会大大简化。像svn_load_dirs http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html#svn.advanced.vendorbr.svn_load_dirs这样的工具可以帮助这一点。 –
+1作为答案。这也可以为自动化编写脚本。 – therobyouknow
...因此,如果存在这种累积性问题,对于出现过时的文件(导致生产力损失)以及最糟糕的构建失败,最多会产生混淆(特别是对新开发项目的开发人员,加快速度)。感谢您指出@Chris Johnsen并在svnbook链接中提供解决方案。 – therobyouknow
这个答案对你来说太晚了,但是其他的发现这个问题我觉得它很有用。 我已经写了一篇关于这个话题的文章:http://cinnamonthoughts.org/2011/03/14/moving-xcode-3-snapshots-to-subversion/
+1这适用于使用相同的基本版本控制的任何开发项目(不只是XCode)。例如,我也处于这种情况,但我的代码是Perl CGI。你会重写问题标题和身体更一般吗? – therobyouknow