svn - 如何避免Subversion中的复杂合并?

标签 svn version-control tortoisesvn ankhsvn

我是Subversion(SVN)的新手,它来自Visual Source Safe(VSS)背景。在VSS中,编辑文件的人员将文件 check out ,并锁定其他用户通过Visual Studio对其进行编辑。我知道SVN是一个并发模型,允许多个人处理同一个文件,以后再将更改合并在一起。我的问题是这样的:

  • 是避免用户编辑同一文件(写入大量代码)并面对更改的复杂合并,甚至更糟糕地编写大量代码而仅发现文件已被另一个用户锁定的最佳方法? ?
  • 是否有办法在检索文件时通知用户该文件当前正在由另一用户编辑或当前由另一用户锁定?

  • 其他详情:

    使用VisualSVN Server作为SVN Server。
    使用TortoiseSVN和AnkhSVN客户端。

    最佳答案

    我也是Visual Source Safe的前用户。合并常常使我发疯,直到我意识到这不是技术问题,而是人员问题。使用VSS时,大多数开发人员在必须检入代码之前会尝试完成尽可能多的工作。此行为是导致复杂合并的原因。

    以下是一些减轻这种情况的方法:

  • 在启动
  • 之前始终更新您的工作副本
  • 经常签到。这将使代码更改更小,更易于自动合并
  • 不要取消选中工作代码
  • 如果更改需要几天甚至更长的时间,开发人员应该创建自己的分支

  • 这些事情极大地帮助了我,尤其是在我工作的团队不断壮大的过程中。从VSS复制锁定行为是一个非常糟糕的主意,并且会引起更多问题。只需拥抱新的工作流程即可。

    如果您仍然想使用工具,那么建议您查看SVNMonitor

    关于svn - 如何避免Subversion中的复杂合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722568/

    相关文章:

    svn - 如何在 Subversion 命令提示符中指定带空格的文件名

    svn - 在操作系统之间共享 Subversion 工作副本安全吗?

    git-svn 单个 svn 服务器,多个 svn 目录作为多个 git 远程

    visual-studio-2010 - Visual Studio 不支持源代码管理项目

    svn - TFS外壳集成TortoiseTFS?

    svn - 如何在SVN中使用自定义关键字

    svn - Subversion externals 是反模式吗?

    svn - 如何在 svnsync 中更改 svn url?

    mysqldump 合并而不是覆盖

    git - 如何获得按最近提交排序的 Git 分支列表?