有没有一种方法可以“扩展” svn命令行来预处理源文件

时间:2018-11-02 21:10:18

标签: git svn

问题:我需要签入一些未完成的工作,以便团队开始测试。我不想提交很多东西。

这不是git或svn的解决方案。

Ignore specific changes to a file in git, but not the entire file

嗯...如果可以“扩展” svn以添加“预处理器” shell脚本,我可以在shell脚本中实现。

基本上,在执行“ svn commit”之前,编写一个shell脚本,该脚本将由某个易读符号界定的行去除。

我的头顶上

#pragma mark nocommit
#pragma mark endnocommit

有人这样做吗?

我在工作副本中添加了#警告,出于多种原因,我不需要其他人看到。但是,到了提交的时候,我必须费力地编辑掉这些注释,然后在提交后再放回去。

示例:

  • 我有一个新功能正在工作,您需要团队开始测试,但是我已经用“已知错误”列表标记了代码。我希望这些#警告可以提醒测试人员不要担心这些“已知错误”

  • 我已经复制了一个边缘案例的错误,但是我还没有时间修复它。
    示例:

    #warning已知的错误:弄清楚为什么拖放剪辑时会发生这种“错误:不匹配”?

  • 我发出#warning来提醒我注意一些事情,因为我还没有想出一个更优雅的解决方案

  • 我不希望其他团队成员知道,我还没有提出更好的解决方案,因为一旦您提出这样的评论,人们就会倾向于将其解释为“官员”,他们需要权衡。 (即由于我的被动进取性格,我现在不想听到的建议:P)

示例:

我想用git / svn / etc标记我的工作副本。会认出我不想做的事情,像这样:

#pragma mark nocommit
#warning TODO... figure out why this mismatch happens when you drag/drop a clip?
##pragma mark endnocommit

与建议的其他“非解决方案”相比,这可以为我节省很多时间。

嗯...有人建议这样做:

http://rpm.pbone.net/index.php3/stat/4/idpl/30087865/dir/opensuse_13.x/com/perl-App-GitHooks-Plugin-BlockNOCOMMIT-1.0.2-4.1.noarch.rpm.html

1 个答案:

答案 0 :(得分:1)

Git支持一些钩子,如explained here。对于您的情况,使用pre-commit挂钩似乎合适。在提交到本地克隆之前,此挂钩在本地计算机上运行。

Subversion 客户端不支持钩子,仅支持herehere中所述的Subversion服务器。通常不会轻易在中央服务器上添加此类挂钩。因此,对于SVN,您可以使用外壳脚本包装程序来包装svn客户端,该脚本程序包装程序可以拦截svn ci和类似内容并执行检查。但这很容易被直接使用SVN API的IDE所绕过。例如