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

有没有办法在Subversion中“纠缠”两个文件?

svn
  •  7
  • Dima  · 技术社区  · 16 年前

    我有一个其他人一定遇到过的问题。我正在开发一个在两个不同平台上运行的代码库。大多数代码在平台之间共享,但代码的某些部分针对特定平台进行了优化。因此,可能存在函数的通用实现 foo() foo.cpp 以及针对文件中的平台优化的实现 foo_A.cpp

    当然,有时开发人员会修改 忘了对 保持同步。这会导致非常不愉快的错误,很难追踪。

    最后,我的问题是:有没有办法在Subversion中“纠缠”两个或更多的文件?有没有可能,当一个人承诺改变 foo.cpp文件 让svn发出警告,提醒更新 福乌公司 ?

    5 回复  |  直到 16 年前
        1
  •  7
  •   D'Arcy Rittich    16 年前

    你可以写一个 pre-commit hook 检查以确保 foo.cpp 和 foo_A.cpp 当其中任何一个被提交时都存在。

        2
  •  3
  •   John Fisher    16 年前

    Subversion有可以使用的钩子。基本上,您可以在适当的文件夹中用正确的名称编写脚本。它可以检查是否签入了一个特定名称的文件,然后执行一系列响应操作(换句话说,您可以在每次签入另一个文件时自动更新一个文件。)

        3
  •  2
  •   myron-semack    16 年前

    你可以使用 pre-commit hook

    如果您有一些一致的文件命名约定,则可以在脚本中放入一些智能模式匹配逻辑(e、 g.如果您知道优化文件的名称总是以“\u A”结尾,那么您可以更轻松地自动化检查。)

    然而,正如评论人士所指出的,我真诚地认为你试图错误地解决这个问题。我将尝试构造代码,以防止此类错误首先发生。如果两个函数都需要同时更改,这是代码库中不必要的重复的标志。请看将两个文件的公共元素合并到一个位置。

        4
  •  1
  •   Seaux    16 年前

    #ifdef 的(检查定义平台的标志),而不是仅仅编写一个全新的函数?

        5
  •  0
  •   Douglas Leeder    16 年前