我通常会对我的源代码进行多次小的编辑,但是由于这些更改相当微不足道,所以我不想立即提交。我目前使用的方法是将更改记录在文本文件中,然后在提交时将其复制到日志中。
在使用Tortoise SVN(或任何其他SVN工具)时,是否可以在我编辑时将日志消息附加到我当前正在使用的副本上,然后在提交时自动附加日志消息,以便我不必记住到目前为止所做的所有更改?
我通常会对我的源代码进行多次小的编辑,但是由于这些更改相当微不足道,所以我不想立即提交。我目前使用的方法是将更改记录在文本文件中,然后在提交时将其复制到日志中。
在使用Tortoise SVN(或任何其他SVN工具)时,是否可以在我编辑时将日志消息附加到我当前正在使用的副本上,然后在提交时自动附加日志消息,以便我不必记住到目前为止所做的所有更改?
当您提交失败时,tortoiseSVN会为您存储提交消息以便在重试时使用。找到该文件并追加内容是我的建议。
vanilla svn是commit.tmp,这可能是一个好的起点。
编辑:
编辑编辑:您正在使用tortoise,这意味着您需要在Windows上运行。因此,您可能需要使用适用于Windows的工具。我已经快速地用Python重新编写了它,因为我不擅长cmd脚本。
或者,创建一个名为logs的目录,将所有笔记存储在其中,然后为提交脚本执行以下操作:
for i in `ls logs`; do
echo -n "$i: "
cat logs/$i >> commitFile
done
svn commit -F commitFile
或者在Python中
#!/usr/bin/python
import os
dirlisting = os.listdir('logs')
commitFile = open("commitfile.tmp", "w")
for i in dirlisting:
log = open(i, 'r')
commitFile.write(log.read())
log.close()
os.execlp("svn", "svn", "commit", "-F", "commitfile.tmp")
你需要修复最后一行,以便调用tortoise。不过我没有测试过这两个脚本。
显然,你可能想稍微整理一下并使其更加智能化,但你可以看到我的意图。
在提交之前使用差异工具并审查更改有什么问题吗?
如果您无法记住更改的原因或从代码中解决它们,那么这不是您需要更频繁地提交的线索吗?提交是便宜且快速的,如果更改在修订中逻辑相关,则在将来进行还原和合并会更加容易。
有趣的问题。
这个答案可能与上下文无关,但如果您可以灵活地转向另一个版本控制系统,我建议您转向Git(允许您进行本地提交)。我并不是说SVN有什么不好,它很棒,只是根据使用情况,Git可能更适合您。