最理想的情況是把這些人適當的壓力得到水銀,但除此之外,一個補丁可能比一個更好的壓縮文件集,因爲該補丁將跟蹤刪除和重命名。如果你仍然想一個zip文件,我寫了一個簡短的腳本,使一個zip文件:
import os, subprocess, sys
from zipfile import ZipFile, ZIP_DEFLATED
def main(revfrom, revto, destination, *args):
root, err = getoutput("hg root")
if "no Merurial repository" in err:
print "This script must be run from within an Hg repository"
return
root = root.strip()
filelist, _ = getoutput("hg status --rev %s:%s" % (revfrom, revto))
paths = []
for line in filelist.split('\n'):
try:
(status, path) = line.split(' ', 1)
except ValueError:
continue
if status != 'D':
paths.append(path)
if len(paths) < 1:
print "No changed files could be found."
return
z = ZipFile(destination, "w", ZIP_DEFLATED)
os.chdir(root)
for path in paths:
z.write(path)
z.close()
print "Done."
def getoutput(cmd):
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return p.communicate()
if __name__ == '__main__':
main(*sys.argv[1:])
的用法是nameofscript.py fromrevision torevision目的地。例如,nameofscript.py 45 51 c:\updates.zip
對不起,糟糕的命令行界面,但嘿腳本只花了25分鐘寫。
注意:這應該從存儲庫中的工作目錄運行。
我同意發送區別是一個更好的主意。當一個人向另一個人提供更新(子)文件集時,變得非常容易。每當我看到整個.java文件通過電子郵件發送到我以前的工作中時,我都感到c c不安。 – 2009-12-09 09:36:39