Merge branch 'vl/typofix' into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 19 Jul 2013 17:42:57 +0000 (10:42 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Jul 2013 17:42:57 +0000 (10:42 -0700)
* vl/typofix:
random typofixes (committed missing a 't', successful missing an 's')

1  2 
git-p4.py
git-svn.perl
t/t7600-merge.sh
diff --combined git-p4.py
index 911bbce6c5d4e19243e50d5916005872ac672961,4092c55f80b00695b77e1d2b4dd7be2b913d1079..88fcf232e5739b14a60f8b2c2a45add4a48e764b
+++ b/git-p4.py
@@@ -79,27 -79,12 +79,27 @@@ def p4_build_cmd(cmd)
          real_cmd += cmd
      return real_cmd
  
 -def chdir(dir):
 -    # P4 uses the PWD environment variable rather than getcwd(). Since we're
 -    # not using the shell, we have to set it ourselves.  This path could
 -    # be relative, so go there first, then figure out where we ended up.
 -    os.chdir(dir)
 -    os.environ['PWD'] = os.getcwd()
 +def chdir(path, is_client_path=False):
 +    """Do chdir to the given path, and set the PWD environment
 +       variable for use by P4.  It does not look at getcwd() output.
 +       Since we're not using the shell, it is necessary to set the
 +       PWD environment variable explicitly.
 +
 +       Normally, expand the path to force it to be absolute.  This
 +       addresses the use of relative path names inside P4 settings,
 +       e.g. P4CONFIG=.p4config.  P4 does not simply open the filename
 +       as given; it looks for .p4config using PWD.
 +
 +       If is_client_path, the path was handed to us directly by p4,
 +       and may be a symbolic link.  Do not call os.getcwd() in this
 +       case, because it will cause p4 to think that PWD is not inside
 +       the client path.
 +       """
 +
 +    os.chdir(path)
 +    if not is_client_path:
 +        path = os.getcwd()
 +    os.environ['PWD'] = path
  
  def die(msg):
      if verbose:
@@@ -1639,7 -1624,7 +1639,7 @@@ class P4Submit(Command, P4UserMap)
              new_client_dir = True
              os.makedirs(self.clientPath)
  
 -        chdir(self.clientPath)
 +        chdir(self.clientPath, is_client_path=True)
          if self.dry_run:
              print "Would synchronize p4 checkout in %s" % self.clientPath
          else:
@@@ -3168,7 -3153,7 +3168,7 @@@ class P4Rebase(Command)
          if os.system("git update-index --refresh") != 0:
              die("Some files in your working directory are modified and different than what is in your index. You can use git update-index <filename> to bring the index up-to-date or stash away all your changes with git stash.");
          if len(read_pipe("git diff-index HEAD --")) > 0:
-             die("You have uncommited changes. Please commit them before rebasing or stash them away with git stash.");
+             die("You have uncommitted changes. Please commit them before rebasing or stash them away with git stash.");
  
          [upstream, settings] = findUpstreamBranchPoint()
          if len(upstream) == 0:
diff --combined git-svn.perl
index d070de012c3a04ca621782f047425318ff246ca6,7fbc53e3f9c45ca1378d9150b59c97186d57ca9a..4e8275f3d1b6528f501cfa14fa9c6fd40ba63667
@@@ -113,7 -113,7 +113,7 @@@ my ($_stdin, $_help, $_edit
        $_template, $_shared,
        $_version, $_fetch_all, $_no_rebase, $_fetch_parent,
        $_before, $_after,
 -      $_merge, $_strategy, $_preserve_merges, $_dry_run, $_local,
 +      $_merge, $_strategy, $_preserve_merges, $_dry_run, $_parents, $_local,
        $_prefix, $_no_checkout, $_url, $_verbose,
        $_commit_url, $_tag, $_merge_info, $_interactive);
  
@@@ -126,7 -126,6 +126,7 @@@ my %remote_opts = ( 'username=s' => \$G
                      'config-dir=s' => \$Git::SVN::Ra::config_dir,
                      'no-auth-cache' => \$Git::SVN::Prompt::_no_auth_cache,
                      'ignore-paths=s' => \$Git::SVN::Fetcher::_ignore_regex,
 +                    'include-paths=s' => \$Git::SVN::Fetcher::_include_regex,
                      'ignore-refs=s' => \$Git::SVN::Ra::_ignore_refs_regex );
  my %fc_opts = ( 'follow-parent|follow!' => \$Git::SVN::_follow_parent,
                'authors-file|A=s' => \$_authors,
@@@ -203,7 -202,6 +203,7 @@@ my %cmd = 
                    { 'message|m=s' => \$_message,
                      'destination|d=s' => \$_branch_dest,
                      'dry-run|n' => \$_dry_run,
 +                    'parents' => \$_parents,
                      'tag|t' => \$_tag,
                      'username=s' => \$Git::SVN::Prompt::_username,
                      'commit-url=s' => \$_commit_url } ],
                 { 'message|m=s' => \$_message,
                   'destination|d=s' => \$_branch_dest,
                   'dry-run|n' => \$_dry_run,
 +                 'parents' => \$_parents,
                   'username=s' => \$Git::SVN::Prompt::_username,
                   'commit-url=s' => \$_commit_url } ],
        'set-tree' => [ \&cmd_set_tree,
@@@ -473,9 -470,6 +473,9 @@@ sub do_git_init_db 
        my $ignore_paths_regex = \$Git::SVN::Fetcher::_ignore_regex;
        command_noisy('config', "$pfx.ignore-paths", $$ignore_paths_regex)
                if defined $$ignore_paths_regex;
 +      my $include_paths_regex = \$Git::SVN::Fetcher::_include_regex;
 +      command_noisy('config', "$pfx.include-paths", $$include_paths_regex)
 +              if defined $$include_paths_regex;
        my $ignore_refs_regex = \$Git::SVN::Ra::_ignore_refs_regex;
        command_noisy('config', "$pfx.ignore-refs", $$ignore_refs_regex)
                if defined $$ignore_refs_regex;
@@@ -675,14 -669,12 +675,14 @@@ sub merge_revs_into_hash 
  }
  
  sub merge_merge_info {
 -      my ($mergeinfo_one, $mergeinfo_two) = @_;
 +      my ($mergeinfo_one, $mergeinfo_two, $ignore_branch) = @_;
        my %result_hash = ();
  
        merge_revs_into_hash(\%result_hash, $mergeinfo_one);
        merge_revs_into_hash(\%result_hash, $mergeinfo_two);
  
 +      delete $result_hash{$ignore_branch} if $ignore_branch;
 +
        my $result = '';
        # Sort below is for consistency's sake
        for my $branchname (sort keys(%result_hash)) {
@@@ -703,7 -695,6 +703,7 @@@ sub populate_merge_info 
                my $all_parents_ok = 1;
                my $aggregate_mergeinfo = '';
                my $rooturl = $gs->repos_root;
 +              my ($target_branch) = $gs->full_pushurl =~ /^\Q$rooturl\E(.*)/;
  
                if (defined($rewritten_parent)) {
                        # Replace first parent with newly-rewritten version
                        # Merge previous mergeinfo values
                        $aggregate_mergeinfo =
                                merge_merge_info($aggregate_mergeinfo,
 -                                                               $par_mergeinfo, 0);
 +                                                              $par_mergeinfo,
 +                                                              $target_branch);
  
                        next if $parent eq $parents[0]; # Skip first parent
                        # Add new changes being placed in tree by merge
                        my $newmergeinfo = "$branchpath:" . join(',', @revsin);
                        $aggregate_mergeinfo =
                                merge_merge_info($aggregate_mergeinfo,
 -                                                               $newmergeinfo, 1);
 +                                                              $newmergeinfo,
 +                                                              $target_branch);
                }
                if ($all_parents_ok and $aggregate_mergeinfo) {
                        return $aggregate_mergeinfo;
@@@ -1174,10 -1163,6 +1174,10 @@@ sub cmd_branch 
                $ctx->ls($dst, 'HEAD', 0);
        } and die "branch ${branch_name} already exists\n";
  
 +      if ($_parents) {
 +              mk_parent_dirs($ctx, $dst);
 +      }
 +
        print "Copying ${src} at r${rev} to ${dst}...\n";
        $ctx->copy($src, $rev, $dst)
                unless $_dry_run;
        $gs->fetch_all;
  }
  
 +sub mk_parent_dirs {
 +      my ($ctx, $parent) = @_;
 +      $parent =~ s{/[^/]*$}{};
 +
 +      if (!eval{$ctx->ls($parent, 'HEAD', 0)}) {
 +              mk_parent_dirs($ctx, $parent);
 +              print "Creating parent folder ${parent} ...\n";
 +              $ctx->mkdir($parent) unless $_dry_run;
 +      }
 +}
 +
  sub cmd_find_rev {
        my $revision_or_hash = shift or die "SVN or git revision required ",
                                            "as a command-line argument\n";
@@@ -1246,7 -1220,7 +1246,7 @@@ sub cmd_rebase 
                return;
        }
        if (command(qw/diff-index HEAD --/)) {
-               print STDERR "Cannot rebase with uncommited changes:\n";
+               print STDERR "Cannot rebase with uncommitted changes:\n";
                command_noisy('status');
                exit 1;
        }
diff --combined t/t7600-merge.sh
index 2f70433568e3134b09d7e1eb10cc5c8995c1a106,37cc095d86263f7f871c7711a3c0f309bbff8151..460d8ebf48f9ab3826e58e2e9285f6faecd79b78
@@@ -56,8 -56,7 +56,8 @@@ create_merge_msgs () 
                echo &&
                git log --no-merges ^HEAD c2 c3
        } >squash.1-5-9 &&
 -      echo >msg.nolog &&
 +      : >msg.nologff &&
 +      echo >msg.nolognoff &&
        {
                echo "* tag 'c3':" &&
                echo "  commit 3" &&
@@@ -245,7 -244,8 +245,7 @@@ test_expect_success 'merges with --ff-o
  test_expect_success 'merges with merge.ff=only' '
        git reset --hard c1 &&
        test_tick &&
 -      test_when_finished "git config --unset merge.ff" &&
 -      git config merge.ff only &&
 +      test_config merge.ff "only" &&
        test_must_fail git merge c2 &&
        test_must_fail git merge c3 &&
        test_must_fail git merge c2 c3 &&
@@@ -316,7 -316,7 +316,7 @@@ test_expect_success 'merge c1 with c2 (
  
  test_debug 'git log --graph --decorate --oneline --all'
  
- test_expect_success 'unsuccesful merge of c1 with c2 (squash, ff-only)' '
+ test_expect_success 'unsuccessful merge of c1 with c2 (squash, ff-only)' '
        git reset --hard c1 &&
        test_must_fail git merge --squash --ff-only c2
  '
@@@ -336,7 -336,7 +336,7 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c2 (no-commit in config)' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "--no-commit" &&
 +      test_config branch.master.mergeoptions "--no-commit" &&
        git merge c2 &&
        verify_merge file result.1-5 &&
        verify_head $c1 &&
  test_debug 'git log --graph --decorate --oneline --all'
  
  test_expect_success 'merge c1 with c2 (log in config)' '
 -      git config branch.master.mergeoptions "" &&
        git reset --hard c1 &&
        git merge --log c2 &&
        git show -s --pretty=tformat:%s%n%b >expect &&
  
 -      git config branch.master.mergeoptions --log &&
 +      test_config branch.master.mergeoptions "--log" &&
        git reset --hard c1 &&
        git merge c2 &&
        git show -s --pretty=tformat:%s%n%b >actual &&
  '
  
  test_expect_success 'merge c1 with c2 (log in config gets overridden)' '
 -      test_when_finished "git config --remove-section branch.master" &&
 -      test_when_finished "git config --remove-section merge" &&
 -      test_might_fail git config --remove-section branch.master &&
 -      test_might_fail git config --remove-section merge &&
 -
        git reset --hard c1 &&
        git merge c2 &&
        git show -s --pretty=tformat:%s%n%b >expect &&
  
 -      git config branch.master.mergeoptions "--no-log" &&
 -      git config merge.log true &&
 +      test_config branch.master.mergeoptions "--no-log" &&
 +      test_config merge.log "true" &&
        git reset --hard c1 &&
        git merge c2 &&
        git show -s --pretty=tformat:%s%n%b >actual &&
  
  test_expect_success 'merge c1 with c2 (squash in config)' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "--squash" &&
 +      test_config branch.master.mergeoptions "--squash" &&
        git merge c2 &&
        verify_merge file result.1-5 &&
        verify_head $c1 &&
@@@ -386,7 -392,7 +386,7 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'override config option -n with --summary' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "-n" &&
 +      test_config branch.master.mergeoptions "-n" &&
        test_tick &&
        git merge --summary c2 >diffstat.txt &&
        verify_merge file result.1-5 msg.1-5 &&
  
  test_expect_success 'override config option -n with --stat' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "-n" &&
 +      test_config branch.master.mergeoptions "-n" &&
        test_tick &&
        git merge --stat c2 >diffstat.txt &&
        verify_merge file result.1-5 msg.1-5 &&
@@@ -416,7 -422,7 +416,7 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'override config option --stat' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "--stat" &&
 +      test_config branch.master.mergeoptions "--stat" &&
        test_tick &&
        git merge -n c2 >diffstat.txt &&
        verify_merge file result.1-5 msg.1-5 &&
@@@ -432,7 -438,7 +432,7 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c2 (override --no-commit)' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "--no-commit" &&
 +      test_config branch.master.mergeoptions "--no-commit" &&
        test_tick &&
        git merge --commit c2 &&
        verify_merge file result.1-5 msg.1-5 &&
@@@ -443,7 -449,7 +443,7 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c2 (override --squash)' '
        git reset --hard c1 &&
 -      git config branch.master.mergeoptions "--squash" &&
 +      test_config branch.master.mergeoptions "--squash" &&
        test_tick &&
        git merge --no-squash c2 &&
        verify_merge file result.1-5 msg.1-5 &&
@@@ -454,6 -460,7 +454,6 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c0 with c1 (no-ff)' '
        git reset --hard c0 &&
 -      git config branch.master.mergeoptions "" &&
        test_tick &&
        git merge --no-ff c1 &&
        verify_merge file result.1 &&
@@@ -464,9 -471,10 +464,9 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c0 with c1 (merge.ff=false)' '
        git reset --hard c0 &&
 -      git config merge.ff false &&
 +      test_config merge.ff "false" &&
        test_tick &&
        git merge c1 &&
 -      git config --remove-section merge &&
        verify_merge file result.1 &&
        verify_parents $c0 $c1
  '
@@@ -474,19 -482,22 +474,19 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'combine branch.master.mergeoptions with merge.ff' '
        git reset --hard c0 &&
 -      git config branch.master.mergeoptions --ff &&
 -      git config merge.ff false &&
 +      test_config branch.master.mergeoptions "--ff" &&
 +      test_config merge.ff "false" &&
        test_tick &&
        git merge c1 &&
 -      git config --remove-section "branch.master" &&
 -      git config --remove-section "merge" &&
        verify_merge file result.1 &&
        verify_parents "$c0"
  '
  
  test_expect_success 'tolerate unknown values for merge.ff' '
        git reset --hard c0 &&
 -      git config merge.ff something-new &&
 +      test_config merge.ff "something-new" &&
        test_tick &&
        git merge c1 2>message &&
 -      git config --remove-section "merge" &&
        verify_head "$c1" &&
        test_cmp empty message
  '
@@@ -504,7 -515,7 +504,7 @@@ test_expect_success 'combining --ff-onl
  
  test_expect_success 'merge c0 with c1 (ff overrides no-ff)' '
        git reset --hard c0 &&
 -      git config branch.master.mergeoptions "--no-ff" &&
 +      test_config branch.master.mergeoptions "--no-ff" &&
        git merge --ff c1 &&
        verify_merge file result.1 &&
        verify_head $c1
@@@ -514,20 -525,14 +514,20 @@@ test_expect_success 'merge log message
        git reset --hard c0 &&
        git merge --no-log c2 &&
        git show -s --pretty=format:%b HEAD >msg.act &&
 -      test_cmp msg.nolog msg.act &&
 +      test_cmp msg.nologff msg.act &&
 +
 +      git reset --hard c0 &&
 +      test_config branch.master.mergeoptions "--no-ff" &&
 +      git merge --no-log c2 &&
 +      git show -s --pretty=format:%b HEAD >msg.act &&
 +      test_cmp msg.nolognoff msg.act &&
  
        git merge --log c3 &&
        git show -s --pretty=format:%b HEAD >msg.act &&
        test_cmp msg.log msg.act &&
  
        git reset --hard HEAD^ &&
 -      git config merge.log yes &&
 +      test_config merge.log "yes" &&
        git merge c3 &&
        git show -s --pretty=format:%b HEAD >msg.act &&
        test_cmp msg.log msg.act
@@@ -537,6 -542,7 +537,6 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c0, c2, c0, and c1' '
         git reset --hard c1 &&
 -       git config branch.master.mergeoptions "" &&
         test_tick &&
         git merge c0 c2 c0 c1 &&
         verify_merge file result.1-5 &&
@@@ -547,6 -553,7 +547,6 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c0, c2, c0, and c1' '
         git reset --hard c1 &&
 -       git config branch.master.mergeoptions "" &&
         test_tick &&
         git merge c0 c2 c0 c1 &&
         verify_merge file result.1-5 &&
@@@ -557,6 -564,7 +557,6 @@@ test_debug 'git log --graph --decorate 
  
  test_expect_success 'merge c1 with c1 and c2' '
         git reset --hard c1 &&
 -       git config branch.master.mergeoptions "" &&
         test_tick &&
         git merge c1 c2 &&
         verify_merge file result.1-5 &&