【问题标题】:Setting Up SVN for Atomic Commits and Restricted Access为原子提交和受限访问设置 SVN
【发布时间】:2011-11-26 11:55:26
【问题描述】:

我们目前正在工作中进行讨论,我正在寻找一些关于 SVN 设置的建议。

我们的模式是我们将各种项目签入 SVN,其中一些项目依赖于其他项目。例如 FooWebServices 依赖于 FooCommons。

如果我正在处理需要更改 FooWebServices 和 FooCommons 的功能,我希望能够在这两个项目之间进行原子提交。如果我以某种方式搞砸了并且 FooWebServices 的提交失败,那么整个蜡球都会失败。这样我就不会在追踪我遇到的任何问题时搞砸任何其他开发人员或不得不退回更改。 CI 服务器似乎也经常被混淆。

我可以对我们的 repo 的根目录(然后是 FooWebServices 和 FooCommons )进行浅层检查并获得这种行为。然后我可以得到原子提交行为。

情况很复杂,因为我们有承包商也在仓库工作。目前他们无法检查 root 的浅拷贝,因此他们无法获得这种行为。

我想进行一些设置,以便承包商可以检查 root、FooWebServices 和 FooCommons,仅此而已。我还想阻止他们浏览 root 以查看我们没有授予他们访问权限的项目。

这可能吗?我是否使问题过于复杂,甚至不需要原子提交?

【问题讨论】:

    标签: svn commit atomic


    【解决方案1】:

    我认为这太复杂了——而且是耦合的。

    你应该有双向关系;如果你这样做,你有更大的问题。 (在那种情况下,它们实际上只是一个项目。)

    应避免循环。用布局合理的界面将它们分解。

    对于相关项目,一种更好的方法可能是使用单向依赖。如果项目 A 依赖于 B,您可以处理项目 B,提交更改,然后创建一个添加到项目 A 的 JAR 文件。

    这种方法的美妙之处在于,对 A 的更改不需要强制部署 B;它可以通过继续使用旧的 JAR 来接受对 A 的更改,直到适合升级为止。

    【讨论】:

    • 我可能还不够清楚。没有周期。问题是,当您专门提交更改以提供向 A 添加功能的功能时,您不想提交给 B。
    • 我认为没有必要。你太复杂了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2013-05-01
    • 1970-01-01
    • 2013-03-10
    • 2011-07-22
    相关资源
    最近更新 更多