代码之家  ›  专栏  ›  技术社区  ›  HUAGHAGUAH

svn:外部和权限

  •  1
  • HUAGHAGUAH  · 技术社区  · 15 年前

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

    “svn update”命令在无法检索的第一个项目处中止。

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

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

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

    3 回复  |  直到 15 年前
        1
  •  3
  •   nickf    15 年前

    如果用户有权访问某个项目,但该项目不是外部的,那么您到底希望发生什么?如果两者有很强的关联,那么用户应该可以访问两者。如果两者没有很强的关联,那么为什么要将它们作为外部元素添加呢?

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

        2
  •  2
  •   Jim T    15 年前

    如果这是一个足够大的问题,您可以重新构造您的工作区,这样您就有了一个顶层,它只包含对项目部分的外部引用。然后让不同的人用不同的高层来获得他们需要的外部环境。

    类似于:

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

    但你必须愿意用这种方式重组项目,并考虑当外部环境发生全球性变化时该怎么做。 但是,这样的话,你仍然可以在project1的主干上工作,所以就不会有额外的麻烦了。

        3
  •  0
  •   Floris Groenendijk    6 年前

    我不想失去解决之道,所以为了子孙后代,我来了:)

    要更新本地svn签出:

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

    这不会更新外部!

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

    svn up <path_to_external> --username <external_username> --password <external_password>