问题:我需要签入一些未完成的工作,以便团队开始测试。我不想提交很多东西。
这不是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来提醒我注意一些事情,因为我还没有想出一个更优雅的解决方案
示例:
我想用git / svn / etc标记我的工作副本。会认出我不想做的事情,像这样:
#pragma mark nocommit
#warning TODO... figure out why this mismatch happens when you drag/drop a clip?
##pragma mark endnocommit
与建议的其他“非解决方案”相比,这可以为我节省很多时间。
嗯...有人建议这样做:
答案 0 :(得分:1)
Git支持一些钩子,如explained here。对于您的情况,使用pre-commit
挂钩似乎合适。在提交到本地克隆之前,此挂钩在本地计算机上运行。
Subversion 客户端不支持钩子,仅支持here和here中所述的Subversion服务器。通常不会轻易在中央服务器上添加此类挂钩。因此,对于SVN,您可以使用外壳脚本包装程序来包装svn
客户端,该脚本程序包装程序可以拦截svn ci
和类似内容并执行检查。但这很容易被直接使用SVN API的IDE所绕过。例如