标签: svn-externals

如何部署Subversion外部?

我们正在使用SVN测试水域,Beanstalk作为主机.我们的设置看起来像这样:

  • 存储库:模块

    • 第1单元
    • 第2单元
    • 第3单元
  • 存储库:网站1

    • 自定义网站代码
    • svn:对模块1的外部引用
    • svn:对模块2的外部引用
  • 存储库:网站2

    • 自定义网站代码
    • svn:对模块2的外部引用
    • svn:对模块3的外部引用

Beanstalk具有内置的FTP部署工具.在我的理想世界中,Beanstalk只会看到外部引用并将部署的任何更改与网站更改一起部署,但这不受支持,也不会很快.

以包含对外部模块更改的方式自动部署网站1和2的良好做法是什么?

其他SVN主机是否更好地支持部署外部设备?

如果可能的话,我想避免添加我们自己的构建/部署服务器.

svn deployment svn-externals amazon-elastic-beanstalk beanstalk-svn

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

如何禁止subversion提交到svn:external to revisions?

我们将svn:externals用于库的特定修订版,例如

xyzlib -r12345 https://asdf.asdf.local/xyzlib/trunk/
Run Code Online (Sandbox Code Playgroud)

当您在工作副本中对这样的已检出外部进行修改时,即使外部链接指向特定修订而不是HEAD,也可以提交.

svn update提交后运行时,更改将在工作副本中消失,因为subversion会将所有内容还原为修订版12345.因此,您自己从未真正看到更改,但它们仍然在HEAD中,这很糟糕.

是否可以仅在外部未指向HEAD修订版时禁止提交?

svn permissions svn-externals

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

svn:externals&tagging,如何在团队之间组合代码

在我们公司,我们正在开发一个由不同C/C++模块组成的产品.理想情况下,每个层和模块应由不同的团队分别开发并独立测试.目前,我们将每个模块分成它自己的分支:

这些模块是:

\hid
  \branches
  \tags
  \trunk
\api
  \branches
  \tags
  \trunk
\ui
  \branches
  \tags
  \trunk

另外,产品发布是通过组合模块构建的,并使用CI系统定期编译.

\productX
  \branches
    \5.0
      \hid-4.0 (svn:externs \hid\branches\4.0)
      \api-3.0 (svn:externs \api\branches\3.0)
      \ui-5.0  (svn:externs \ui\branches\5.0)
  \tags
  \trunk

我们遇到的主要问题是'svn tag'与externs相关的行为.当前的外部引用了HEAD - 因为我们希望定期构建最新版本以确保所有模块协同工作.但是,一旦构建成功并且我们继续进行发布,如果有一种简单的方法可以自动标记所有内容 - 包括extern中使用的版本,那将是很好的.就目前而言,我们必须为模块创建标签,然后将externs更新为这些标签,然后标记产品,最后将其交换回主干.

有更清洁的方法吗?随意评论当前的结构.

svn tags svn-externals

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

配置(或模仿)svn:externals以包含来自svn托管项目的Github中的代码

我们在本地使用Subversion,我们正在开发一个使用Fluent NHibernate的分支的项目,它在Github上托管.

我想它设置,以便单个svn checkout将检索构建项目所需的一切,但保持从github获取HEAD更新的能力.

有什么方法可以从Git存储库中提取代码,好像它是一个svn:external依赖项?我可以将.git文件夹检查到我们的Subversion存储库中,并在需要时运行git fetch,然后svn提交结果吗?

svn git github git-svn svn-externals

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

Svn存储库停止使用svn + ssh(但在服务器上本地工作)

我有一个svn存储库,我曾经用svn + ssh协议签出.它有一些EXTERNALS,用svn + ssh URL引用自己.

我离开这个项目一段时间直到今天.当我尝试访问svn + ssh url(几个月前曾经工作过)时,我收到了消息svn: No repository found in 'svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository.我仔细检查过,路径和主机名都是正确的.

我尝试使用file://URL 在托管repo的计算机上检查它,并且它成功,直到它必须签出EXTERNALS,其中No repository消息失败.我在本地和远程使用相同的用户.

我应该在哪里查找日志/调试信息来解决此问题?

svn ssh svn-externals

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

Mercurial hgsubversion扩展使SVN Externals的行为类似于Hg子存储库

此问题与使用Mercurial hgsubversion扩展与SVN外部相关.但是,有关做a的问题的第二部分hg svn update尚未得到答复.

是否有可能将您提取的subversion存储库中的SVN外部转换为Mercurial子存储库?

mercurial svn-externals hgsubversion

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

SVN:使用TortoiseSVN更新工作副本以排除外部因素?

有没有办法更新工作副本以排除TortoiseSVN的外部?

我有一份工作副本,我用外部检查.我正在对包含路径进行一些更新,现在将这些外部文件放在不同的项目中.我想更新我当前的工作副本以排除外部 - 基本上从我的本地副本中删除外部.

由于我的工作副本发生了大量变化,只需删除并重新检查,省略外部,不是一个有效的选择.

我正在使用Tortoise SVN 1.7.2,使用1.7.x格式.

编辑:好的,看起来我正在寻找的是不可能的.似乎'SVN Update'将始终使用外部更新,即使使用'Omit Externals'(--ignore-externals)检出存储库也是如此.

编辑2:好的,找到了解决方案.似乎不是每个存储库标记它的方法.但全球:'TortoiseSVN'=>'设置'=>'高级'将'IncludeExternals'设置为false.这将阻止'SVN Update'更新外部.看起来强制进行外部更新,我需要转到"更新到修订版本..."这是可行的,因为这种情况不太可能发生.(我有5个结账,只有1个需要外部,并且只有当道具更新.2在结账时只需要一次)

svn tortoisesvn svn-externals

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

SVN:提交时忽略外部

是否可以忽略SVN中的外部提交?

例:

我有一个项目,其中一个子文件夹是外部的:

svn:externals
my_remote_folder http://svn.whatever.org/blah/trunk/
Run Code Online (Sandbox Code Playgroud)

这无缝地工作.总是当我执行更新时,外部也会更新.

但是,当我在本地结帐中更改任何内容时,我的IDE会识别更改并向我提供要提交的文件.但也许我只是对外部SVN的读访问权限.

我试图忽略常规文件夹:

svn:ignore
my_remote_folder
Run Code Online (Sandbox Code Playgroud)

我也试过了

my_remote_folder .
Run Code Online (Sandbox Code Playgroud)

但是我的IDE(PhpStorm)和TortoiseSVN仍然忽略了这个忽略.

svn svnignore svn-externals

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

如何使用TeamCity AssemblyInfo Patcher构建功能,但不对SVN外部组件也进行修补?

我在Subversion中有一个项目设置,其中定义了一些Subversion Externals。这些Subversion Externals引用了其他项目。

Subversion布局示例:

  1. 回购/ Project1 / trunk
  2. 回购/ Project2 / trunk

结帐布局示例:

  1. $ WorkingDir \ Project1 \ trunk
  2. $ WorkingDir \ Project1 \ trunk \ Lib \ Project2

TeamCity允许您将AssemblyInfo Patcher生成功能附加到生成配置,但似乎不允许排除外部对象。由于外部对象是独立的项目,因此我想保留其程序集版本或AssemblyInfo用不同的模式对其进行修补。

目前,由于我的构建配置签出了具有Subversion Externals全面支持的Project1,然后应用AssemblyInfo Patcher,所以我的Project1程序集和我的Project2程序集都具有相同的程序集版本-即使我希望它们不同。

有没有一种方法可以使Project1程序集的版本与Project2程序集的版本不同?

teamcity svn-externals

4
推荐指数
1
解决办法
4766
查看次数

"svn:externals"有什么好处?

如果我没有碰到这个页面,我就不会知道svn:externals .所以,我设置了我的工作文件夹.然后

mkdir lib/vendor
svn add --parents lib/vendor
svn ps svn:externals 'symfony http://svn.symfony-project.com/branches/1.4/' lib/vendor/
svn ci -m "add externals"
svn update
Run Code Online (Sandbox Code Playgroud)

"svn update"列出了整个symfony文件夹并且非常慢.我以为这会是一次性的痛苦.但是,每次输入"svn up"时,SVN都会检查外部存储库.我必须使用--ignore-externals来使"svn update"足够快.

我想知道svn:externals有什么好处,如果它太慢了.我宁愿将symfony复制到我自己的存储库,这肯定是一个更快的解决方案.

svn externals svn-externals

3
推荐指数
1
解决办法
1820
查看次数