10

我正在用 PHP 和 Java 开发一个小应用程序。它有一些图片,CSS 和 JS,必须在两者中共享。

我不希望这些文件重复,JS 和 CSS 必须相同。所以我希望,当我在一个地方更改它时,更改会在另一个地方复制。

在 Unix 中,我们有符号链接,因此同一个文件/文件夹可以在文件系统中的多个位置“存在”。在 Subversion 中,我们有svn copy,但是一旦执行,两个副本就变得独立了。我想把它们放在一起,在一个副本中完成的提交也将应用于“另一个”。

知道怎么做吗?

4

2 回答 2

16

您指的是帖子中的符号链接,而不是“影子链接”(我已经编辑了帖子)。Subversion 可以版本符号链接,但另一种方法是使用Externals (因为目前 Windows 上的 Subversion 不支持符号链接) 。

不同之处在于,如果您使用外部 Subversion,您的系统上实际上会有两个文件副本(指向存储库中的同一位置),而符号链接是文件系统上的单个文件。

于 2013-04-02T20:53:45.827 回答
3

你没有提到项目是如何在 svn 中布局的,或者你的 java 东西是如何构建的。这些将是添加的很好的细节。

您想研究依赖管理 - 而不是符号链接。正如@alroc 指出的那样,subversion 的这个特性在某些平台上是行不通的。

你真的不想 svn:externals。它们几乎一直都是一笔糟糕的交易,而且如果外部解决了同一个回购协议中的某些问题,它们总是如此。这已经涵盖了很多,这里接受的答案是一个很好的起点。

我建议你有一个 java 应用程序的仓库,一个 php 的仓库,然后可能是一个普通的仓库。

然后,您的构建(java)和部署(php)可以从存储库中解析适当版本的通用 repos 工件(我建议您查看 nexus 或 artifactory)

于 2013-04-02T22:32:50.800 回答