git-svn,如何在trunk中使用目录作为本地trunk

时间:2009-12-16 19:11:08

标签: svn git git-svn

我正在继承一个代码库,它在trunk中有很多目录,真的应该存在于单独的repos中。我的所有开发都发生在一个特定的目录中,这应该是trunk中唯一的东西。

例如:/ path / to / repo / trunk / true_trunk

repo中的所有标记和分支都专门指向此'true_trunk'目录。

问题是:我无法让git-svn表现得像这个trunk的子目录真的是trunk。因此,我的trunk检查用我的工作目录填充了trunk的全部内容,还有十几个其他不相关的代码库。

有没有办法让git-svn只与这个'true_trunk'能直播对话?

任何指定此目录的尝试都会产生以下结果: 使用更高级别的URL:svn:// path / to / trunk / true_trunk =>的svn://路径/到/回购

2 个答案:

答案 0 :(得分:3)

git svn init-T选项允许您指定将其视为“trunk”目录的目录。我过去曾使用过奇怪排列的Subversion目录树,但它已经成功了。您可能需要进行一些实验以获得适合您情况的正确选项组合。

答案 1 :(得分:1)

您可以使用-T的{​​{1}}选项指定真正的中继线,分支机构也git svn clone,标签-b。我认为对于这种布局,您可能需要单独指定每个分支/标记,这样的东西应该适合您,

-t

您可能需要从svn生成分支和标记的转储,以帮助格式化此命令

$ git-svn clone  \
 -T svn://path/to/trunk/true_trunk \
 -b svn://path/to/branches/branch1/true_trunk  \
 -b svn://path/to/branches/branch1/true_trunk \
 -t svn://path/to/tags/tag1/true_trunk \
 -t svn://path/to/tags/tag2/true_trunk \
repository_name