1

我正在运行一个带有可选组件的 svn 项目——从几个外部存储库中提取,以及一些对这些外部具有不同访问权限的用户。

'svn update' 命令在它无法检索的第一个项目中中止。

svn:externals 是否有更好或标准的方法来允许所有用户成功结帐?

编辑:我对外部项目没有所有权/控制权来授予访问权限,并且公司政策不允许镜像外部项目。因为外部支持可选组件,所以权限较少的用户显然不会维护可选组件。但是,他们仍然需要检查其他外部,并且“svn up”非常依赖于顺序。

我意识到修复权限并拆分为子存储库将使这成为一个非问题,但我仍然有兴趣知道是否有任何中间立场。

4

3 回答 3

3

如果用户可以访问某个项目,但不能访问该项目的外部,您究竟希望发生什么?如果两者密切相关,那么用户应该可以访问两者。如果这两者没有密切相关,那么为什么将它们作为外部添加呢?

您也许可以为每个用户授予对所有外部对象的只读访问权限,而仅对需要它的人授予写访问权限。

于 2009-03-25T15:05:00.510 回答
2

如果这是一个足够大的问题,您可以重组您的工作区,以便您拥有一个仅包含对项目部分的外部引用的顶层。然后让不同的人使用不同的顶层来获得他们需要的外部。

需要大量的管理和思考。

就像是:

/Projects
 /Project1
  /trunk
 /Project2External
  /tag1
/Workspaces
 /Project1
  /DevA - svn:external Project1/trunk Project2/tag1
  /DevB - svn:external Project1/trunk

但是您必须愿意以这种方式重组项目,并考虑在外部发生全局变化时该怎么办。但是,通过这种方式,您仍然在 project1 的主干上工作,所以没有额外的摆弄。

于 2009-03-26T09:34:08.237 回答
0

我知道这是一个旧线程,但是我对来自 github 的外部有一个问题,它与 svn 存储库中的用户名和密码不同。我不想失去解决方案,所以为了后代,我走了:)

更新本地 svn checkout:

svn switch --username <username> --password <password> http://svn.server/svn/exampleProject --ignore-externals

这不会更新外部!

现在使用不同的用户名和密码更新外部:

svn up <path_to_external> --username <external_username> --password <external_password>
于 2018-05-31T12:52:42.750 回答