From 3899a8e26a7d38acdbc6c19c50522e6a0dff99c8 Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Wed, 3 Aug 2005 12:20:43 +0100 Subject: [PATCH] 'pull' should use the origin branch By default it uses the branch with the same name as the head pointed to by the HEAD link. The command also accepts a different location. Signed-off-by: Catalin Marinas --- stgit/commands/pull.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/stgit/commands/pull.py b/stgit/commands/pull.py index 4a82fe8..3bad086 100644 --- a/stgit/commands/pull.py +++ b/stgit/commands/pull.py @@ -24,15 +24,15 @@ from stgit import stack, git help = 'pull the changes from the remote repository' -usage = """%prog [options] +usage = """%prog [options] [] -Pull the latest changes from the parent repository. This command works -by popping all the patches from the stack, pulling the changes in the -parent repository, setting the base of the stack to the latest parent -HEAD and pusing the patches back (unless '--nopush' is specified). The -'push' operation can fail if there are conflicts. They need to be -resolved and the patch pushed again. The URL of the parent repository -is specified in the .git/branches/ file. +Pull the latest changes from the given URL or branch (defaulting to +'origin'). This command works by popping all the patches from the +stack, pulling the changes in the parent repository, setting the base +of the stack to the latest parent HEAD and pusing the patches back +(unless '--nopush' is specified). The 'push' operation can fail if +there are conflicts. They need to be resolved and the patch pushed +again. Note that this command doesn't perform any merge operation for the base of the stack, it only performs merges with the patches being @@ -50,15 +50,21 @@ options = [make_option('-n', '--nopush', def func(parser, options, args): """Pull the changes from a remote repository """ - if len(args) != 0: + if len(args) == 0: + location = read_string(os.path.join(git.base_dir, 'branches', + 'origin')) + elif len(args) == 1: + location = args[0] + branch = os.path.join(git.base_dir, 'branches', location) + if os.path.isfile(branch): + location = read_string(branch) + else: parser.error('incorrect number of arguments') check_local_changes() check_conflicts() check_head_top_equal() - branch = git.get_head_file() - location = read_string(os.path.join(git.base_dir, 'branches', branch)) orig_head = git_id('base') print 'Pulling from "%s"...' % location -- 2.11.0