相关疑难解决方法(0)

颠覆外部是反模式吗?

Subversion允许您使用外部嵌入其他存储库的工作副本,从而允许在项目中轻松控制第三方库软件.

虽然这些似乎是重用库和供应商软件版本控制的理想选择,但它们并非没有批评:

请不要使用Subversion外部(或其他工具中的类似),它们是反模式,因此是不必要的

使用外部设备是否存在隐患?请解释为什么他们会被视为反模式.

svn version-control anti-patterns svn-externals

68
推荐指数
6
解决办法
2万
查看次数

SVN:发布分支和外部?

我们有两个网站用于相同的客户端(主要的www站点,另一个用于电子商务网站,位于单独的服务器上),它们使用共享的代码部分(各种功能/样式/ javascript等).我们目前通过在SVN中将共享代码作为单独的项目(在同一个存储库中)并使用svn:externals将这些中的每个分支拉入两个网站项目来管理它.

我们刚刚创建了两个发布分支,每个分支对应两个站点.在工作时,一切都被正常地提交到每个站点的中继线,当"准备好直播"时,我们将它合并到该站点的发布分支中.除了今天我们修改了一些共享代码并注意到发布分支在我们对发布分支进行更新时立即将其拉出来.这不是我们想要的:(

所以任何想法我们如何解决这个问题.我们使用外部来干扰代码的共享,但还有另一种方法吗?请注意,在这个问题中(我如何在SVN中分支并让它分支我的svn:外部文件夹?)他们提到外部是坏的,我们应该使用不同的构建过程,但没有提到应该是什么.

我们有CruiseControl.net运行我们的构建,并渴望得到这个坚果破解.有没有人对更好的流程有任何想法?

干杯

皮特

更新:我们已经开始使用Mercurial(Fogcreek的Kiln)进行源代码控制.Mercurial也有子回购的想法所以我们也跟着那条路线跟我们的项目.然而,它是有代价的,分支是非常困难的,因为标记和简单地保持一切都是最新的.我们最新的方法是将两个项目都纳入一个回购,包括所有共享回购.这给了我们一个"大型项目",它减慢了克隆时间(在SVN中查看),但我们很少这样做,以至于不必处理子回购的收益使它非常值得.我们现在使用功能切换/切换而不是分支,这也极大地简化了我们的开发.

svn release-management build-server

16
推荐指数
1
解决办法
8758
查看次数

所有项目中的共享组件,是否有比svn:externals更好的替代方案?

我的情况:我有几个组件,有时会对它们进行更改,并在很多不同的项目中共享.每个项目都将这些文件放在名为/ depends的子文件夹中.依赖包含所有常见组件的一堆svn外部.

svn:externals给我带来了很多时间和痛苦.

  • 显示项目根文件夹上的日志不会显示svn:external文件夹的更改(但有趣的提交和更新将适用于svn:externals)
  • 分支时,svn:externals不分支.
  • 由于svn:externals上没有分支,任何更改通常都会破坏主干.
  • 标签不会冻结他们的外部.这实际上违背了标记的目的.

请记住,我有几个项目(让我们说这个讨论每个使用相同的外部代码10),因此为每个项目保留正常的已提交目录将花费我很多合并时间.

对我的情况有更好的选择吗?

svn svn-externals

14
推荐指数
3
解决办法
2831
查看次数

在SVN中合并后我无法提交更改

在使用TortoiseSVN合并项目的两个分支后,我遇到了提交更改的问题.

这是详细信息:

我做了一个合并分支到我正在进行的项目的主干.

项目包括主存储库和与主存储库连接的库,作为svn external(库也分支)作为项目的子目录.

当我试图提交更改时,TortoiseSVN说:

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.
Run Code Online (Sandbox Code Playgroud)

当然清理没有帮助.

svn:项目目录的外部关键字定义良好,lib文件夹中仍然包含适当版本​​的库(trunk版本).

SVN服务器和客户端都是1.5.x版本(TortoiseSVN是1.5.3.x).

从技术角度来看,项目都是同一SVN存储中的项目.

知道出了什么问题吗?

我一直在google搜索解决方案,但没有找到任何有用的东西,所以我尝试分两步提交我的更改:

  1. 从项目文件夹提交更改
  2. 从库文件夹提交更改

哪个没有任何问题.

但我仍然想知道为什么我不能在一次提交中提交所有内容.

EDITS:

  • (Ken G回答之后)固定版TortoiseSVN 1.3.x - > 1.5.3.x.

svn tortoisesvn merge svn-merge

5
推荐指数
1
解决办法
7866
查看次数