Subversion update命令非递归并覆盖文件

时间:2009-10-12 13:24:57

标签: svn

请让我知道应该使用哪些命令来非递归地更新存储库以及使用命令行写入已更改的文件

过度写入意味着如果对构建计算机中的本地AssemmblyInfo.vb / cs文件进行了一些更改。在执行svn update时,它不应该将其更新到存储库

3 个答案:

答案 0 :(得分:3)

以下命令将以非递归方式运行SVN更新:

svn update --depth=files

通常,您可以使用以下方法了解给定命令的所有选项:

svn help command

在上文中,将 command 替换为实际命令(例如“update”)。

更新命令不会修改或覆盖任何具有本地修改的文件。如果存在具有本地修改的文件,并且您希望放弃这些本地修改以支持更新版本,则可以运行命令“svn revert”以还原本地修改并将文件标记为干净。

编辑:在我的帖子中,我使用了“svn update --non-recursive”;但是,正如已经指出的那样,此选项目前已被列为过时。

答案 1 :(得分:2)

svn update与选项--depth一起使用。

请参阅http://svnbook.red-bean.com/en/1.5/svn.ref.svn.html#svn.ref.svn.sw

修改

  

过度写入意味着如果对构建计算机中的本地AssemmblyInfo.vb / cs文件进行了一些更改。在执行svn update时不应将其更新到存储库

这没问题。 svn update永远不会将已更改的文件发送回存储库(这是commit所做的),它只会从服务器获取新数据。

注意:您的问题表明对Subversion(或任何版本控制系统)如何工作存在根本性误解。可能我建议阅读一些Subversion教程(或优秀的Version Control with Subversion),这将为您节省很多麻烦。

答案 2 :(得分:0)

您可以结帐svn revert以取消结帐更改:

revert: Restore pristine working copy file (undo most local edits).
usage: revert PATH...

  Note:  this subcommand does not require network access, and resolves
  any conflicted states.  However, it does not restore removed directories.

Valid options:
  --targets ARG            : pass contents of file ARG as additional args
  -R [--recursive]         : descend recursively, same as --depth=infinity
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                            'immediates', or 'infinity')
  -q [--quiet]             : print nothing, or only summary information
  --changelist ARG         : operate only on members of changelist ARG
                             [aliases: --cl]