所以我有这个尴尬的"一个女孩两个杯子"我们使用SVN撰写研究论文的情况。我们有一个带有书目引用的公共数据库(我们科学家称之为引用),它被保存在一个单独的文件夹中,并被我们编写的所有论文使用。结构如下所示:
[repository on server A]
PaperA
paperA.tex % uses "../references/refs.bib"
PaperB
paperB.tex % uses "../references/refs.bib"
PaperC
paperC.tex % uses "../references/refs.bib"
References
refs.bib
到目前为止一切顺利。
现在我需要与来自不同大学的同事合作,这些同事无法访问此SVN(我不能为那些人制作访客帐户,因为有些荒谬"不是我们的政府雇员/硬件用法"规则)。所以我需要做的是创建一个他们也可以访问的公共存储库:
[repository on server B]
CollaborativePaper
paper.tex % will use "../references/refs.bib"
references
refs.bib % this now exists in two different repos
我想知道是否有办法保持references
文件夹在两个回购之间以某种方式同步?我想我在Linux中所做的将是同一个文件/目录的符号链接,它将被提交给两个repos,所以每次我从一个检查更改时,我可以将它提交给另一个而不实际复制任何文件手动和合并将被处理。但是我在Windows中没有那么幸运。
我正在调查svn:external
项目,这在这种情况下会很棒,除了来自不同大学的同事无法访问这两个回购,因此无用。
我也在寻找供应商的分支机构,但这些基本上都是手工复制的文件名称,并没有为我同步这两个回购(或者至少是我的理解)。
我还在研究一个嵌套的工作副本,这个副本对我个人而言,但是嵌套文件(refs.bib
)永远不会被提交到协作回购中,所以来自不同大学的同事们赢了能够使用它/对其进行更改。
在Windows中,在不同服务器上运行的两个SVN存储库中是否存在单个物理文件夹?
编辑:虽然这类似于Same working copy of the code with 2 SVN servers(这本身就是另一个SO问题的回答),但也存在一些差异。第一个问题How to synchronize two Subversion repositories?假设用户拥有两台服务器的凭据。这不是真的。第二个Can I have one project in two SVN repositories?假定没有合作(OP只是希望他的文件在周末安全,直到他星期一来到办公室提交)。第三个SVN: one working copy, two repositories?是两者的混合。这些问题的答案都没有为我提供可行的解决方案。
答案 0 :(得分:2)
References
文件夹的存储库References
必须移至REMOTE(加载|转储),必须删除物理文件夹并替换为外部定义(建议两个单独的提交)References
添加到他们自己的仓库(或使用与References
之外的基础树相同的基础设施?)在较低级别:
.svn
文件夹检查外部的根源)。这是正常的(通常意义上的)工作副本,它满足WCes的所有标准条件和要求(所有需要的操作只为WCes回复 - 包装和嵌套),是的:如果存储库未打开,则必须提供从客户端所有必需的凭据,但每个客户的唯一用户显然有点过分:从功能方面来说,它足以拥有2个用户 - “读者”和“完全访问”(对于提交者,以便在此过程中不会动态更改凭据)