标签: svn-externals

SVN更新命令以定位单个外部子文件夹?

我在plugins文件夹中有一堆externals目录.

~> svn propedit svn:externals .

akismet http://plugins.svn.wordpress.org/akismet/trunk/
stats http://plugins.svn.wordpress.org/stats/tags/1.3.7/
html-purified http://svn.wp-plugins.org/html-purified/trunk/
Run Code Online (Sandbox Code Playgroud)

有时我会更新一个外部参考来更新版本号从1.3.7到1.3.8但是我被迫向svn up整个文件夹发出一个命令并且根本svn up stats不起作用,而是返回如下内容:

At revision 108437.
Run Code Online (Sandbox Code Playgroud)

而不是从外部存储库更新文件夹.是否可以更新单个外部子文件夹?

svn version-control svn-externals

6
推荐指数
1
解决办法
1924
查看次数

在externals属性中更改svn存储库URL

我正在将我的存储库移动到一个新位置,但是我的文件夹中包含在外部属性中硬编码的(相同)存储库URL.例如:
旧网址:https://OldLocation.Domain/svn/
新网址:https://NewLocation.Domain/svn/

如何将旧存储库URL更改为新存储库URL?只是编辑属性不起作用.

svn tortoisesvn visualsvn svn-externals

6
推荐指数
1
解决办法
4470
查看次数

svn:用同名的本地文件夹替换外部的简洁方法

我在各个地方检查了一个存储库.我有一个文件夹X,它是另一个存储库的外部.我希望X是本地的.还有其他问题,但它们似乎没有遇到我的困难.

我做的是编辑了svn:externals并删除了该行.然后我提交了回购.然后我拿了文件夹,删除了.svn它中的所有条目(使其成为常规文件夹),svn add编辑它,然后提交.这很好.

但是,当我更新回购的另一个结账时,我遇到了问题.第一个错误是这样的:

UUID mismatch: existing directory XXX was checked out from a different repository.
Run Code Online (Sandbox Code Playgroud)

好的,已经svn up失败了,但我尝试删除文件夹并重新更新.现在它管理重新获取所有内容,但现在我收到一个新错误:

Can't remove file XXX: Access is denied
Run Code Online (Sandbox Code Playgroud)

我再次尝试更新,没有任何反应.我删除该文件夹中的文件并从根目录再次更新,没有任何反应.我删除了文件夹X,没有任何反应 - 所以它似乎忘了它!我唯一的办法就是删除X的根目录并svn up从一个级别下来(因为所有这些也发生在一个也是外部的子文件夹中).

不好......我不想在签出此存储库的所有站点上执行某些手动rigamarole.该怎么办?

svn repository svn-externals

6
推荐指数
1
解决办法
3147
查看次数

如何为svn external设置修订号?

所以我有这个文件Mobile.framework,如果我做了svn propedit我得到

svn propedit svn:externals
Run Code Online (Sandbox Code Playgroud)

它提出来了

Mobile.embeddedframework  svn+ssh://../Mobile.embeddedframework
Run Code Online (Sandbox Code Playgroud)

这是指头.

我想编辑它并将其设置为-r1209.什么是将其设置为修订版的正确方法?

svn svn-externals

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

SVN外部文件未提交是否正常?

我是Subversion的新手,最近学会了如何使用自动导入属于其他存储库的文件svn:externals.现在,当我提交trunk文件夹并创建标记以拍摄项目的快照时,定义为外部的文件/文件夹将不会添加到标记文件夹中.

例如,我有这个文件夹结构

Z:\回购\ repoA

Z:\回购\ repoB

Z:\项目\ workB

我已经设定svn:externalsZ:\Projects\workB,以file:///Z:/repos/repoA/trunk/lib trunk/lib使repoA的lib文件夹被自动添加到当前的工作目录,Z:\Projects\workB\trunk.实际上,当我执行时SVN Update,lib文件夹是在trunk文件夹下创建的.

编辑完一些文件并执行SVN Commit...Z:\Projects\workB\trunk,我TortoiseSVN -> Branch/Tag从上下文菜单中选择.在该To Path字段中,键入tags/1.0.1并按下确定.1.0.1标记已成功创建.

我执行后SVN UpdateZ:\Projects\workB\tags,一个名为1.0.1的文件夹出现,但没有外部文件.

这是正常的吗?我预计导入的文件也会存在,因为它们位于工作目录的trunk文件夹中.


我在Assembla创建了两个公共存储库,供任何人测试.

第二个存储库具有外部定义,该定义lib从第一个存储库中下拉文件夹.当我从第二个存储库创建当前主干文件的标记时,它不会将外部文件添加到标记文件夹.另外,当我签出标签文件夹时,它不会将外部文件添加到本地工作副本.

svn tortoisesvn svn-externals

6
推荐指数
1
解决办法
7162
查看次数

svn:删除工作副本中的外部?

我将我的一个(单文件)外部组件移动到另一个目录,但它的存在仍然存在于我的工作副本中.如果我删除该文件然后svn update,它将被恢复.

我怎样才能摆脱外在的?它不再出现svn:externals在相关目录中.

svn svn-externals

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

如何将svn url重定向到另一个域?

背景:DynDNS现在已开始要求每月登录一次以保持其免费帐户处于活动状态(以前您只需每月更新一次IP地址).我相信我迟早会忘记这样做并失去我的帐户.

我使用mysvn.dyndns.org来访问服务器上的subversion存储库,该服务器也可以通过svn.mydomain.com访问(截至目前).不幸的是,大多数项目也指的是也位于mysvn.dyndns.org的外部,我真的不想通过所有项目(> 100)并改变外部,因为这可能需要几个小时而且容易出错.

有没有办法配置Windows或subversion/TortoiseSVN客户端将一个域重定向到另一个域?

例如:

https://mysvn.dyndns.org/svn/blablub

应重定向到

https://svn.mydomain.com/svn/blablub

我知道我可以向主机添加一个条目以重定向到一个IP地址,但我更希望重定向到一个域名.

svn dns tortoisesvn redirect svn-externals

5
推荐指数
2
解决办法
3388
查看次数

最佳实践使用svn:externals

我们来看三个案例:

  1. 这句话很好.999是一个挂钩.这就是所谓的"旧格式":

    foo -r999 http://myrepo/foo

  2. 或者,也可以像这样指定peg("新格式"),也很好:

    http://myrepo/foo@999 foo

  3. 但是这里出现了"新格式"的复杂性:-r999可以放在前面,这完全是从一个挂钩变成一个"操作版本".根据SVN书的说法,实际挂钩变为HEAD(即不再具有确定性):

    -r999 http://myrepo/foo foo

    这就是为什么我认为这种格式可能是一个非常糟糕的主意:如果在999之后将"bar"重命名为"foo",实际上会检出哪些内容?重命名的版本,@ 999吧.这真的有用吗?然后,另一个重命名发生,将"baz"命名为"foo".现在用户将查看baz @ 999.因此,随着时间的推移,用户永远不会确定999是指相同的代码.

#3是一个等待造成麻烦的漏洞吗?是否应该用鲜红色警告用户以避免使用#3的格式?或者它是否真的有用,尽管它具有非确定性?这几乎容易误解和出错,因此似乎需要指定最佳实践.

SVN Book中,如果你真的深入研究它,它会巧妙地暗示用户要小心:

小心避免天真地重新定位定义的-rNNN部分 - 旧格式使用该修订作为挂钩修订版,但较新的格式使用它作为操作修订版(除非另有说明,否则使用HEAD的挂钩修订版;请参阅调用部分"挂钩和操作修订",以完整解释这里的区别).

svn svn-externals

5
推荐指数
2
解决办法
5713
查看次数

避免 SVN 递归检查外部

我有一个超级项目,其中svn:externals还有其他几个项目。他们,反过来又svn:external是他们自己的依赖者。我的问题之一是我的依赖项通常依赖于相同的svn:external(公共库),这导致大量重复的签出和构建。

当我签出或更新我的主项目时,我想签出我的直接外部,但忽略它们的外部。我想我可以在 svn 属性中设置它,但我还没有弄清楚如何设置。我会想象这样的事情:

$ svn propset svn:externals -r25 http://svn.example.com/foo/trunk foo --ignore-externals
Subcommand 'propset' doesn't accept option '--ignore-externals'
Type 'svn help propset' for usage.
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以避免检查外部的外部吗? --depth并没有真正起作用,因为我的父存储库或中间存储库中的文件夹结构的深度是任意的,因此您无法使用该命令可靠地过滤掉外部内容。

svn svn-externals

5
推荐指数
0
解决办法
414
查看次数

svn 到带有嵌套 svn:externals 的 git 迁移

从带有 svn externals 的 svn 迁移到 git。每个 svn externals 可能有它自己的 svn:externals。我发现这里没有关于如何将带有外部的 svn 迁移到 git 的指南。每个分支可能有它自己的分支标签主干。迁移整个存储库的最佳方法是什么?我正在查看主存储库的 git svn clone 添加 git 子模块,以及每个外部克隆的子模块。但是由于外部是嵌套的,我不知道什么是最好的解决方案。到目前为止使用的脚本:

https://github.com/eneroth/git-externals
https://github.com/eneroth/git-externals
Run Code Online (Sandbox Code Playgroud)

git-svn svn-externals git-submodules git-subtree git-subrepo

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