1. 14 Jan, 2019 1 commit
  2. 30 Aug, 2018 1 commit
  3. 15 Aug, 2018 1 commit
  4. 08 May, 2018 5 commits
  5. 11 Apr, 2018 1 commit
  6. 27 Feb, 2018 1 commit
  7. 14 Feb, 2018 2 commits
  8. 08 Sep, 2017 1 commit
  9. 01 Aug, 2016 1 commit
    • Johannes Schindelin's avatar
      merge-recursive: offer an option to retain the output in 'obuf' · f1e2426b
      Johannes Schindelin authored
      Since 66a155bc (Enable output buffering in merge-recursive., 2007-01-14),
      we already accumulate the output in a buffer. The idea was to avoid
      interfering with the progress output that goes to stderr, which is
      unbuffered, when we write to stdout, which is buffered.
      
      We extend that buffering to allow the caller to handle the output
      (possibly suppressing it). This will help us when extending the
      sequencer to do rebase -i's brunt work: it does not want the picks to
      print anything by default but instead determine itself whether to print
      the output or not.
      
      Note that we also redirect the error messages into the output buffer
      when the caller asked not to flush the output buffer, for two reasons:
      1) to retain the correct output order, and 2) to allow the caller to
      suppress *all* output.
      Signed-off-by: Johannes Schindelin's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      f1e2426b
  10. 28 Jun, 2016 1 commit
  11. 17 Feb, 2016 1 commit
  12. 29 Oct, 2012 1 commit
  13. 14 Aug, 2011 1 commit
  14. 21 Feb, 2011 2 commits
    • Jeff King's avatar
      merge: enable progress reporting for rename detection · 99bfc669
      Jeff King authored
      The user can enable or disable it explicitly with the new
      --progress, but it defaults to checking isatty(2).
      
      This works only with merge-recursive and subtree. In theory
      we could pass a progress flag to other strategies, but none
      of them support progress at this point, so let's wait until
      they grow such a feature before worrying about propagating
      it.
      Signed-off-by: default avatarJeff King <peff@peff.net>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      99bfc669
    • Jeff King's avatar
      merge: improve inexact rename limit warning · bf0ab10f
      Jeff King authored
      The warning is generated deep in the diffcore code, which
      means that it will come first, followed possibly by a spew
      of conflicts, making it hard to see.
      
      Instead, let's have diffcore pass back the information about
      how big the rename limit would needed to have been, and then
      the caller can provide a more appropriate message (and at a
      more appropriate time).
      
      No refactoring of other non-merge callers is necessary,
      because nobody else was even using the warn_on_rename_limit
      feature.
      Signed-off-by: default avatarJeff King <peff@peff.net>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      bf0ab10f
  15. 28 Dec, 2010 1 commit
  16. 29 Sep, 2010 1 commit
  17. 03 Sep, 2010 1 commit
  18. 26 Aug, 2010 2 commits
  19. 11 Aug, 2010 2 commits
  20. 06 Aug, 2010 1 commit
  21. 31 May, 2010 1 commit
    • Gary V. Vaughan's avatar
      enums: omit trailing comma for portability · 4b05548f
      Gary V. Vaughan authored
      Without this patch at least IBM VisualAge C 5.0 (I have 5.0.2) on AIX
      5.1 fails to compile git.
      
      enum style is inconsistent already, with some enums declared on one
      line, some over 3 lines with the enum values all on the middle line,
      sometimes with 1 enum value per line... and independently of that the
      trailing comma is sometimes present and other times absent, often
      mixing with/without trailing comma styles in a single file, and
      sometimes in consecutive enum declarations.
      
      Clearly, omitting the comma is the more portable style, and this patch
      changes all enum declarations to use the portable omitted dangling
      comma style consistently.
      Signed-off-by: default avatarGary V. Vaughan <gary@thewrittenword.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      4b05548f
  22. 01 Apr, 2010 1 commit
  23. 21 Mar, 2010 1 commit
    • Jonathan Nieder's avatar
      merge_trees(): add ancestor label parameter for diff3-style output · 4c5868f4
      Jonathan Nieder authored
      Commands using the merge_trees() machinery will present conflict hunks
      in output something like what ‘diff3 -m’ produces if the
      merge.conflictstyle configuration option is set to diff3.  The output
      lacks the name of the merge base on the ||||||| line of the output,
      and tools can misparse the conflict hunks without it.  Add a new
      o->ancestor parameter to merge_trees() for use as a label for the
      ancestor in conflict hunks.
      
      If o->ancestor is NULL, the output format is as before.  All callers
      pass NULL for now.
      
      If o->ancestor is non-NULL and both branches renamed the base file
      to the same name, that name is included in the conflict hunk labels.
      Even if o->ancestor is NULL I think this would be a good change, but
      this patch only does it in the non-NULL case to ensure the output
      format does not change where it might matter.
      Requested-by: Stefan's avatarStefan Monnier <monnier@iro.umontreal.ca>
      Signed-off-by: default avatarJonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      4c5868f4
  24. 18 Jan, 2010 2 commits
    • Junio C Hamano's avatar
      Make "subtree" part more orthogonal to the rest of merge-recursive. · 85e51b78
      Junio C Hamano authored
      This makes "subtree" more orthogonal to the rest of recursive merge, so
      that you can use subtree and ours/theirs features at the same time.  For
      example, you can now say:
      
      	git merge -s subtree -Xtheirs other
      
      to merge with "other" branch while shifting it up or down to match the
      shape of the tree of the current branch, and resolving conflicts favoring
      the changes "other" branch made over changes made in the current branch.
      
      It also allows the prefix used to shift the trees to be specified using
      the "-Xsubtree=$prefix" option.  Giving an empty prefix tells the command
      to figure out how much to shift trees automatically as we have always
      done.  "merge -s subtree" is the same as "merge -s recursive -Xsubtree="
      (or "merge -s recursive -Xsubtree").
      
      Based on an old patch done back in the days when git-merge was a script;
      Avery ported the script part to builtin-merge.c.  Bugs in shift_tree()
      is mine.
      Signed-off-by: default avatarAvery Pennarun <apenwarr@gmail.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      85e51b78
    • Avery Pennarun's avatar
      git merge -X<option> · 8cc5b290
      Avery Pennarun authored
      Teach "-X <option>" command line argument to "git merge" that is passed to
      strategy implementations.  "ours" and "theirs" autoresolution introduced
      by the previous commit can be asked to the recursive strategy.
      Signed-off-by: default avatarAvery Pennarun <apenwarr@gmail.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      8cc5b290
  25. 30 Nov, 2009 1 commit
  26. 05 Sep, 2008 2 commits
  27. 04 Sep, 2008 1 commit
  28. 31 Aug, 2008 3 commits
    • Miklos Vajna's avatar
      merge-recursive: introduce merge_options · 8a2fce18
      Miklos Vajna authored
      This makes it possible to avoid passing the labels of branches as
      arguments to merge_recursive(), merge_trees() and
      merge_recursive_generic().
      
      It also takes care of subtree merge, output buffering, verbosity, and
      rename limits - these were global variables till now in
      merge-recursive.c.
      
      A new function, named init_merge_options(), is introduced as well, it
      clears the struct merge_info, then initializes with default values,
      finally updates the default values based on the config and environment
      variables.
      Signed-off-by: default avatarMiklos Vajna <vmiklos@frugalware.org>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      8a2fce18
    • Stephan Beyer's avatar
      merge-recursive.c: Add more generic merge_recursive_generic() · 73118f89
      Stephan Beyer authored
      merge_recursive_generic() takes, in comparison to to merge_recursive(),
      no commit ("struct commit *") arguments but SHA ids ("unsigned char *"),
      and no commit list of bases but an array of refs ("const char **").
      
      This makes it more generic in the case that it can also take the SHA
      of a tree to merge trees without commits, for the bases, the head
      and the remote.
      
      merge_recursive_generic() also handles locking and updating of the
      index, which is a common use case of merge_recursive().
      
      This patch also rewrites builtin-merge-recursive.c to make use of
      merge_recursive_generic().  By doing this, I stumbled over the
      limitation of 20 bases and I've added a warning if this limitation
      is exceeded.
      
      This patch qualifies make_virtual_commit() as static again because
      this function is not needed anymore outside merge-recursive.c.
      Signed-off-by: default avatarStephan Beyer <s-beyer@gmx.net>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      73118f89
    • Miklos Vajna's avatar
      Split out merge_recursive() to merge-recursive.c · 9047ebbc
      Miklos Vajna authored
      Move most of the of code from builtin-merge-recursive.c to a new file
      merge-recursive.c and introduce merge_recursive_setup() in there so that
      builtin-merge-recursive and other builtins call it.
      Signed-off-by: default avatarMiklos Vajna <vmiklos@frugalware.org>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      9047ebbc