[DEV] fetch other remote, status on other remote

This commit is contained in:
Edouard DUPIN 2017-09-05 22:55:55 +02:00
parent f8de06c4d9
commit bc82c533f1
4 changed files with 61 additions and 17 deletions

View File

@ -64,6 +64,7 @@ myArgs.add("c", "color", desc="Display message in color")
#myArgs.add("h", "help", desc="Help of this action")
myArgs.add("b", "branch", haveParam=True, desc="Select branch to display")
myArgs.add("m", "manifest", haveParam=True, desc="Name of the manifest")
myArgs.add("N", "no-fetch-manifest", haveParam=False, desc="Disable the fetch of the manifest")
"""
myArgs.add("j", "jobs", haveParam=True, desc="Specifies the number of jobs (commands) to run simultaneously")
myArgs.add("d", "depth", haveParam=True, desc="Depth to clone all the repository")
@ -131,6 +132,10 @@ def parseGenericArg(argument, active):
else:
debug.disable_color()
return True
elif argument.get_option_name() == "no-fetch-manifest":
if active == False:
env.set_fetch_manifest(False)
return True
return False
"""

View File

@ -26,9 +26,15 @@ def help():
def execute(arguments):
debug.info("execute:")
origin_name = ""
for elem in arguments:
debug.info(" '" + str(elem.get_arg()) + "'")
if len(arguments) != 0:
if len(arguments) == 0:
pass
elif len(arguments) == 1:
origin_name = arguments[0].get_arg()
debug.info("try fetch remote if exist: '" + str(origin_name) + "'")
else:
debug.error("Sync have not parameter")
# check if .XXX exist (create it if needed)
@ -40,10 +46,11 @@ def execute(arguments):
configuration = config.Config()
debug.info("update manifest : '" + str(env.get_island_path_manifest()) + "'")
# update manifest
cmd = "git fetch --all"
multiprocess.run_command_direct(cmd, cwd=env.get_island_path_manifest())
if env.get_fetch_manifest() == True:
debug.info("update manifest : '" + str(env.get_island_path_manifest()) + "'")
# update manifest
cmd = "git fetch --all"
multiprocess.run_command_direct(cmd, cwd=env.get_island_path_manifest())
file_source_manifest = os.path.join(env.get_island_path_manifest(), configuration.get_manifest_name())
if os.path.exists(file_source_manifest) == False:
@ -69,7 +76,10 @@ def execute(arguments):
# simply update the repository ...
debug.verbose("Fetching project: ")
# fetch the repository
cmd = "git fetch " + elem.select_remote["name"]
if origin_name == "":
cmd = "git fetch " + elem.select_remote["name"]
else:
cmd = "git fetch " + origin_name
debug.verbose("execute : " + cmd)
multiprocess.run_command_direct(cmd, cwd=git_repo_path)

View File

@ -21,15 +21,18 @@ def help():
return "plop"
def execute(arguments):
debug.info("execute:")
origin_name = ""
for elem in arguments:
debug.info(" '" + str(elem.get_arg()) + "'")
if len(arguments) != 0:
debug.error("status have not parameter")
if len(arguments) == 0:
pass
elif len(arguments) == 1:
origin_name = arguments[0].get_arg()
debug.info("try fetch remote if exist: '" + str(origin_name) + "'")
else:
debug.error("Sync have not parameter")
# check if .XXX exist (create it if needed)
if os.path.exists(env.get_island_path()) == False \
@ -62,28 +65,42 @@ def execute(arguments):
debug.verbose("execute : " + cmd)
ret_diff = multiprocess.run_command(cmd, cwd=git_repo_path)
# get local branch
cmd = "git branch"
cmd = "git branch -a"
debug.verbose("execute : " + cmd)
ret_branch = multiprocess.run_command(cmd, cwd=git_repo_path)
# get tracking branch
cmd = "git rev-parse --abbrev-ref --symbolic-full-name @{u}"
debug.verbose("execute : " + cmd)
ret_track = multiprocess.run_command(cmd, cwd=git_repo_path)
is_modify = True
if ret_diff[0] == 0:
is_modify = False
list_branch = ret_branch[1].split('\n')
list_branch2 = []
list_branch3 = []
select_branch = ""
for elem_branch in list_branch:
if len(elem_branch.split(" -> ")) != 1:
continue
if elem_branch[2:10] == "remotes/":
elem_branch = elem_branch[:2] + elem_branch[10:]
if elem_branch[:2] == "* ":
list_branch2.append([elem_branch[2:], True])
select_branch = elem_branch[2:]
else:
list_branch2.append([elem_branch[2:], False])
list_branch3.append(elem_branch[2:])
debug.verbose("List all branch: " + str(list_branch3))
# get tracking branch
if origin_name == "":
cmd = "git rev-parse --abbrev-ref --symbolic-full-name @{u}"
debug.verbose("execute : " + cmd)
ret_track = multiprocess.run_command(cmd, cwd=git_repo_path)
else:
debug.extreme_verbose("check if exist " + origin_name + "/" + select_branch + " in " + str(list_branch3))
if origin_name + "/" + select_branch not in list_branch3:
debug.info("" + str(id_element) + "/" + str(len(all_project)) + " : " + str(elem.name) + "\r\t\t\t\t\t\t\t (NO BRANCH)")
continue;
else:
ret_track = [True, origin_name + "/" + select_branch]
modify_status = " "
if is_modify == True:
@ -111,6 +128,8 @@ def execute(arguments):
if in_forward != 0:
behind_forward_comment += "forward=" + str(in_forward)
if in_behind != 0:
if in_forward != 0:
behind_forward_comment += " "
behind_forward_comment += "behind=" + str(in_behind)
if behind_forward_comment != "":
behind_forward_comment = "\r\t\t\t\t\t\t\t\t\t\t\t\t[" + behind_forward_comment + "]"

View File

@ -26,6 +26,16 @@ def get_system_base_name():
return system_base_name
fetch_manifest = True
def set_fetch_manifest(val):
global fetch_manifest
fetch_manifest = val
def get_fetch_manifest():
global fetch_manifest
return fetch_manifest
island_root_path = os.path.join(os.getcwd())
if os.path.exists(os.path.join(island_root_path, "." + get_system_base_name())) == True: