2

我有一个我正在处理的 SVN 项目非常混乱,资源名称很糟糕,项目文件中充满了错误信息和几乎无法搜索和销毁的链接。最重要的是,文件档案需要认真重新排列以使其具有任何可理解的意义。我之所以这样做,是因为我完全打算用一个新项目来解决问题,该项目名称相同,并且只将“好的”代码和资源全部转移到漂亮整洁的文件夹和目录中。

所以我的问题是我有一个项目“FOOBAR”,这一切都结束了。在我的桌面上,我有“FOOBAR_FIXED”,它不受修订控制,但是我现在想要在我的“FOOBAR”SVN 上。

我如何用“FOOBAR_FIXED”替换所有“FOOBAR”?无需手动删除所有对象、提交,然后再次手动添加所有对象并重新提交?

4

2 回答 2

2

您将其描述为另一个项目,因此它可能应该是另一个项目。但是如果你想替换当前的,并且真的想在一次提交中完成,而不是在 svn 之外进行重组,你应该创建一个新的主干分支,在那里进行更改,然后复制/合并清理干净的树枝放回树干。但是现在你已经做到了,这就是我的处理方式。

  1. 导出主干。(不是结帐。导出。我们想要一个没有 svn 跟踪信息的版本。)

  2. 使用 diff 工具来区分导出的主干和主干的固定版本,并将差异导出到补丁中。

  3. 检查后备箱。并将补丁应用于签出的版本。

  4. 用于svn status查找完全删除svn rm的文件,用于记录删除和添加的文件,svn add用于添加。(我相信linux系统上的命令会svn status | grep "^!" | cut -f 2 | xargs svn rm记录旧文件的删除,尽管我可能有cut错误的参数。我将保留版本以添加新文件作为练习,但它应该旧的相差一个字符并将“svn rm”更改为“svn add”)

希望这会奏效。您绝对应该再次运行任何测试以确保一切正确。

首先删除trunk中的所有内容,然后签入整个新版本,这样会容易得多。

于 2011-02-13T05:52:15.903 回答
0

如果这是一个绝望的原因,只需启动一个新的存储库,并保留旧的存储库以供参考。

一个中途措施可能是将trunk重命名为trunk.bad并启动一个新的trunk。

于 2011-02-13T01:29:52.957 回答