有没有办法在TortoiseSVN中"部分"提交文件?

Fab*_*mes 46 svn tortoisesvn

我想使用TortoiseSVN只提交一个文件的一部分,有没有办法做到这一点?

我举一个例子,让我更清楚为什么要这样做.

我有一个文件,其中包含一些在构建过程中被替换的定义,如下所示:

#define SOME_PATH "[SOME_PATH]"
Run Code Online (Sandbox Code Playgroud)

这个[SOME_PATH]标签在构建过程中被替换,但是当我编码时,我必须更改它以便在我的机器中实际路径.

因此,每次我提交时,我需要备份一些行,还原它们,提交然后恢复备份,这有点烦人.

有没有办法告诉TortoiseSVN"忽略"X,Y和Z行的某些变化?

Gre*_*der 69

最高投票的答案是过时的.

来自tortoiseSVN网站:http: //tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-commit.html

仅提交部分文件

有时您只想提交对文件所做更改的部分内容.这种情况通常发生在您正在处理某些事情但随后需要提交紧急修复时,并且该修复恰好位于您正在处理的同一文件中.

右键单击该文件并使用上下文菜单→提交后恢复.这将按原样创建文件的副本.然后,您可以编辑该文件,例如在TortoiseMerge中,并撤消您不想提交的所有更改.保存这些更改后,您可以提交该文件.

提交完成后,将自动恢复文件的副本,并且您拥有的文件包含未提交的所有修改.

  • TortoiseSVN让这种方式太复杂了.信息就在那里,因此只能进行"线下"提交或搁置的底层操作.或者有原因吗? (5认同)
  • 上下文菜单→我的TortoiseSVN中没有提交后恢复. (5认同)
  • @ user1451111您必须在"提交"窗口中右键单击该文件.您应该在该上下文菜单中看到它. (5认同)

Cor*_*ger 12

不.Subversion在文件级别工作.

  • 这个答案不再正确.请参阅@Greylander的[answer](http://stackoverflow.com/a/21150351/825024). (12认同)

Wil*_*ung 7

没有.

最好的办法是检查一些文件,如"build_paths.h.default",然后在每个构建平台上,将其复制到build_paths.h,修改它以适应,然后告诉SVN到IGNORE build_paths.h.最后在你的程序中#include"buiild_paths.h".


Ada*_*dam 5

总的来说是的!最新版本的torroise svn中添加了功能(1.8)请参阅发行说明 不幸的是,这是一个手动过程,可能不太适合您的特定用例 - 对于"我正处于新功能和已经注意到一个错误,并希望只提交错误修复"情况.

对于您的情况,我使用模板文件,该模板文件在构建过程中用于创建使用的实际文件(此文件仅从模板文件创建,不存在任何其他文件).我在svn中有tempalte文件但忽略了acutal文件.这意味着我只需要在新的结账后建立一次,然后我的工作副本就可以了 - 但是标签的值没有提交.如果我需要添加新标签,我会在tempalte文件中执行此操作并重建我的工作副本.