使用SVN和处理同一文件

使用SVN和处理同一文件,svn,Svn,我对使用SVN是新手。我们和3个人一起做一个嵌入式项目。当有人在开发c库时,其他人在开发另一个库。这里有一个main.c,我们还在其中编写一些代码。我的问题是如何管理SVN中的main.c等常见文件?我们需要这样做,因为我们都在同一时间一起工作。这是我们的工具已经可以涵盖的内容。有两件事需要注意 合并工具 这是一个自动将更改合并在一起的工具。通常,在同一个文件上进行两次编辑的合并不会出现任何问题,因为编辑涉及代码的不同区域 冲突 当合并工具发现两个文件都更改了相同的代码行时,就会发生冲突

我对使用SVN是新手。我们和3个人一起做一个嵌入式项目。当有人在开发c库时,其他人在开发另一个库。这里有一个main.c,我们还在其中编写一些代码。我的问题是如何管理SVN中的main.c等常见文件?我们需要这样做,因为我们都在同一时间一起工作。

这是我们的工具已经可以涵盖的内容。有两件事需要注意

  • 合并工具
这是一个自动将更改合并在一起的工具。通常,在同一个文件上进行两次编辑的合并不会出现任何问题,因为编辑涉及代码的不同区域

  • 冲突
当合并工具发现两个文件都更改了相同的代码行时,就会发生冲突(这一点通常也很明智,因此它不会对空行感到恼火),SVN会通知您此问题,您使用的客户端甚至可能会弹出合并工具,向您显示问题。您将不得不手动解决您的冲突,但通过一点沟通,这很少是一个问题

只要记住,在你开始做新的东西之前,先进行一次更新,让其他人都改变,否则你可能会遇到完全可以避免的冲突

作为记录,我使用TortoiseSVN和WinMerge作为我的客户机和合并工具


希望有帮助

当您对文件进行更改并准备将这些更改提交回源代码管理时,您将这些更改提交给SVN服务器。当其他人也对该文件进行了更改,并且他们尝试执行相同的操作时,服务器会告诉他们有一个新版本,他们需要首先进行更新

更新后,SVN将合并它们的更改。如果合并不容易,它将需要用户解决冲突(可能是在某种合并工具中,我认为它是可定制的)。一旦这些冲突得到解决,该人员也可以将其更改提交到该文件


服务器始终具有源代码的“当前版本”。当提交到服务器时,开发人员有责任确保他们已经用当前版本测试了他们的更改,并且没有破坏它。您可以使用持续集成工具和技术来自动化很多这方面的工作,特别是如果您对代码进行了自动化测试。为了降低合并的复杂性,建议提交许多小的更改,而不是少数大的更改。

让我们从头开始:

  • 在服务器计算机上安装subversion服务器
  • 设置存储库
  • 为用户设置访问权限
  • 每个用户在其工作站上安装subversion客户端
  • 将项目导入存储库(初始提交)

    svn导入/trunk-m=“初始提交我的项目”

  • 每个用户现在签出一份
    工作副本

    svn签出——修订头——深度无限——力/躯干

  • 现在,您和您的朋友可以开始处理各自的
    工作副本了。完成后,将更改提交到存储库

    svn commit-m“一些评论:修复了bug或问题”

    要获取好友的更改,请执行
    update
    命令

    svn更新——修订标题

    最后,这里有一些您可能会感兴趣的链接:


    您确实需要阅读手册。SVN就是为此而设计的。我不相信合并主文件的更改,但我会尝试进行一些小的更改。非常感谢。