Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Subversion:如何将一个项目的单独版本作为另一个项目的子目录进行维护_Svn_Tortoisesvn_Branch - Fatal编程技术网

Svn Subversion:如何将一个项目的单独版本作为另一个项目的子目录进行维护

Svn Subversion:如何将一个项目的单独版本作为另一个项目的子目录进行维护,svn,tortoisesvn,branch,Svn,Tortoisesvn,Branch,我想将subversion项目(/signature_paper)复制到另一个subversion项目(/thesis)的子目录中。我将在/论文/签名文件中进行更改,但不会回到原始签名文件中。同时,我希望/论文/签名论文能够收集/签名论文中所做的大部分或全部更改 理想情况下,我希望这是一个单一的subversion项目,也就是说,svn联合论文为我提供了全部内容,包括/论文/签名论文 我不确定从/signature\u paper进行分支和定期合并是否可以为我做到这一点,如果可以的话,我也不确定

我想将subversion项目(/signature_paper)复制到另一个subversion项目(/thesis)的子目录中。我将在/论文/签名文件中进行更改,但不会回到原始签名文件中。同时,我希望/论文/签名论文能够收集/签名论文中所做的大部分或全部更改

理想情况下,我希望这是一个单一的subversion项目,也就是说,svn联合论文为我提供了全部内容,包括/论文/签名论文

我不确定从/signature\u paper进行分支和定期合并是否可以为我做到这一点,如果可以的话,我也不确定如何做到这一点。几年前我在Clearcase中使用过分支,但从未建立过自己的分支。我最初没有使用a/trunk设计就建立了我们的svn存储库。我通常使用命令行客户机,但如果有帮助的话,可以使用Tortoise

有什么简单的方法可以做到这一点吗?上一次我有这种需要时,我会定期手动重新制作一个类似的项目(将一篇不断发展的论文提取到一个更大的文档中),这真是一件痛苦的事

编辑: 嗯,这样做有效吗?
%cd论文
%svn公司文案/签名文件
%找到-name.svn-exec rm-rf{}\
%svn添加签名纸


然后稍后使用svn从/signature\u paper合并到/thesis/signature\u paper

确保对应合并的更改进行“单一”提交。解释如何“同步”文档。将文本拆分为多个子文档可能有助于提高效率。Subversion不强制使用目录布局,您可以自由创建最适合您的目录布局

最简单的方法是将公共文本部分隔离到单独的文件中,放在公共文件夹中。这些段落包含在论文或论文的\input{name}中

如果您不能或不想维护一个公共文件,则需要合并论文和论文以交换内容。我脑子里有两个大文件。由于您可能无法同步所有内容,要合并的更改应进入“修订版”。换句话说,您的工作副本是最新的。应用更改并进行提交。下一步,将此修订版与其他文档合并

-主干
--论文
--纸张1
--纸张2

--common

您可以使用
svn:externals
进行设置,该设置(如果您不键入修订号)将随签出的其余部分更新。只需确保不要从外部目录提交(与
update
相反,
commit
不提交
svn:externals
我相信,但您可能需要测试它

例如,有关更多信息,请参阅:

更新也会获取外部数据:

$ svn up
Fetching external item into 'signature_paper'
External at revision N.

At revision N.
提交不会从外部提交,除非在目录中显式执行此操作:

$ touch signature_paper/test
$ svn add signature_paper/test
A         signature_paper/test
$ svn ci -m'test'
//nothing happens.......
$ svn ci -m'test' signature_paper/
Adding         test
Transmitting file data .
Committed revision N.

如果你想知道,/论文是我用乳胶写的论文,/签名论文是一篇即将进入我论文的论文。但是/论文/签名论文将始终至少与/signature论文略有不同。使用
svn export
获得源代码的.svn免费版本。不知道svn export;thanks。我认为你的想法超出了我的能力范围。我不知道你的建议是什么,甚至我也不知道如何设置和合并我建议的结构。你能看看我修改后的问题吗?我说我到目前为止做了些什么,并给我一些反馈?添加了一个示例,说明如何使用
外部
。那么你怎么做呢subversion知道将其合并到其他文档中的位置吗?我每次都手动告诉它?subversion与mercurial不同,mercurial是面向更改集的,它跟踪修订。确保在开始处理应合并到其他文档中的更改之前进行提交。然后编辑您的文档(论文)并提交要合并的更改。现在将创建的修订合并到“论文”中。
$ touch signature_paper/test
$ svn add signature_paper/test
A         signature_paper/test
$ svn ci -m'test'
//nothing happens.......
$ svn ci -m'test' signature_paper/
Adding         test
Transmitting file data .
Committed revision N.