我想配置我的电脑,以便每半小时说它会自动提交我正在处理的程序。我正在使用一个svn存储库,所以即使它只是一个每隔30分钟运行'svn ci'的脚本就可以了。问题是我不知道该怎么做。
有人可以告诉我,或者告诉我什么,这会让我得到这个定期提交的工作吗?
提前致谢。
编辑:对不起,我觉得我很困惑为什么要这样做。我想这样做的唯一原因是因为我的讲师希望我们知道我们的代码如何随着时间的推移而发展,我认为使用svn是一个好主意。最新提交是否有效无关紧要。它只需要显示我随着时间的推移对代码所做的更改。答案 0 :(得分:12)
与明显的流行观点相反,我认为在作业的背景下,这是对svn的一种很好的用法。
像kdesvn这样的工具(甚至更好,tortoisesvn,但这只是在Windows上)可以让你深入了解日志视图,差异和责备视觉效果。
如果您正在使用ubuntu,请从与您正在处理的控制台分开的控制台运行此bash脚本。
#!/bin/bash
while [ 1 ]
do
# Do the commit
svn ci --message "Automated commit" ~/yourworkingcopy
# Wait until next commit time
sleep 1800
done
答案 1 :(得分:6)
您可以尝试运行shell脚本的cron作业。你在用什么操作系统?
但我很好奇你为什么要这样做。您的提交应包含一些功能或错误修复,而不是基于时间间隔。您可能会在更改过程中(在一组文件上)提交,这将导致您的修订无效。
答案 2 :(得分:5)
我不认为按时间安排设置提交是一个特别好的主意。特别是如果你开始进入测试和持续集成。按设定的时间间隔提交会破坏构建,因为无法保证您将在时间范围内完成变更集。
更好的方法是,如果要自动提交,则自己进行构建过程的提交。只需将构建过程的最后一步提交到存储库即可。这样,如果构建失败,您将不会提交垃圾。
完全可以使用各种make,我知道Visual Studio有前后构建事件,可以设置为执行类似这样的操作。所以我很确定大多数现代IDE都可以解决这个问题。
特别考虑到这个问题:
将提交挂钩移动到流程的开头,这样您就可以跟踪何时陷入困境,以及如何解决错误。
答案 3 :(得分:5)
我不会通过这样一系列的自动提交弄脏你的控制版本系统。但我同意使用控制版本系统提供该信息的想法。
然后,我的建议是:为您的软件使用存储库,使用另一个存储库来存储自动提交。完成工作后,只在一个逻辑提交中合并主存储库中的所有自动提交。
使用git,我会这样做:
毕竟,我认为这些数据不会收集到有用的信息。所以,我会尽量避免这个工作流程。但如果真的需要,我会这样做。
答案 4 :(得分:2)
我会使用Subversion,但我只是习惯于进行单个更改,然后将这些更改存储到存储库中。
这样,讲师如果愿意,不仅可以查看 更改的内容,还可以查看 更改的原因。这会比我想象的更有用。
答案 5 :(得分:2)
你可以试试这个食谱: http://code.activestate.com/recipes/577570-watch-directory-and-do-periodic-commits-to-subvers/
答案 6 :(得分:1)
如果您正在运行UNIX,请考虑创建cron作业以定期运行命令。