hg的版本提交分两步
1. hg commit
2. hg push
但有些时候,我们需要一步完成,即在hg commit后,自动做 hg push
配置如下:
.hg/hgrc
[hooks]
commit.autopush = hg push
Python 自动更改
# -*- coding:utf-8 -*-
import sys
import os
import configparser
# global various
BASEDIR=""
def usage():
print("Autopush for HG")
print("Copyright (C) 2011 Liu Yugang ")
print("autopush ")
def FixAutoPush(hgrcfile):
config = configparser.ConfigParser()
try :
config.read(hgrcfile)
if(not config.has_section("hooks")):
config.add_section("hooks")
if(config.has_option("hooks","commit.autopush")):
if(config["hooks"]["commit.autopush"]=="hg push"):
print("Find \"commit.autopush\" in \""+hgrcfile+"\", skip.")
return
config["hooks"]["commit.autopush"]="hg push"
with open(hgrcfile,"w") as configfile:
config.write(configfile)
print("Fix \""+hgrcfile+"\"")
except configparser.Error as err:
print(err)
def main():
if(len(sys.argv)<2):
usage()
exit()
BASEDIR=os.path.abspath(sys.argv[1])
fixautopush=False
hgrcfile=os.path.join(BASEDIR,".hg","hgrc")
if(os.path.isfile(hgrcfile)):
FixAutoPush(hgrcfile)
exit()
for hg_dir in os.listdir(BASEDIR):
hgrcfile=os.path.join(BASEDIR,hg_dir,".hg","hgrc")
if(os.path.isfile(hgrcfile)):
FixAutoPush(hgrcfile)
fixautopush=True
if(not fixautopush) :
print("Can't find \""+hgrcfile+'" file.')
if __name__ == "__main__":
main()
阅读(2393) | 评论(0) | 转发(0) |