git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/23] Change semantics of "fetch --tags"
@ 2013-10-30  5:32 Michael Haggerty
  2013-10-30  5:32 ` [PATCH v2 01/23] t5510: use the correct tag name in test Michael Haggerty
                   ` (22 more replies)
  0 siblings, 23 replies; 28+ messages in thread
From: Michael Haggerty @ 2013-10-30  5:32 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: git, Carlos Martín Nieto, Michael Schubert, Johan Herland,
	Jeff King, Marc Branchaud, Nicolas Pitre, John Szakmeister,
	Michael Haggerty

This is v2 of my proposed fix for the "local tag killer" problem that
I reported recently [1].  Thanks a lot to Junio for his feedback on
v1.

Changes since v1:

* Rebase to current upstream master (0d6cf2471f); no conflicts were
  encountered.

* Incorporate feedback from Junio:

  * Improve the documentation as suggested

  * Fix a few typos

* Document get_expanded_map() and fix a minor memory leak that I found
  there.

* get_ref_map(): Do not look for references that can be updated
  opportunistically among the entries added by "--tags".  Preserve the
  order of output list when changing the function to handle the new
  "--tags" semantics.  (I know more about how the output is used and
  am less worried now that the changes will have bad interactions with
  the rest of the system.)

* Improve the description of tag-following in the "git fetch" manpage.

* Moved the changes to ref_remove_duplicates() later in the series, as
  they were not really integral to the rest of the patch series.
  Make the following changes to that function:

  * Add tests of how it handles duplicates.

  * Simplify the loop in a different way than v1, to make it more
    modular.

  * Extract a function to handle duplicates.

  * Improve the error messages emitted if ref_remove_duplicates()
    finds conflicting duplicates, and mark the messages for
    translation.

  * Do not die() if a user-specified refspec conflicts with
    an opportunistic update.

[1] http://article.gmane.org/gmane.comp.version-control.git/234723

Michael Haggerty (23):
  t5510: use the correct tag name in test
  t5510: prepare test refs more straightforwardly
  t5510: check that "git fetch --prune --tags" does not prune branches
  api-remote.txt: correct section "struct refspec"
  get_ref_map(): rename local variables
  builtin/fetch.c: reorder function definitions
  get_expanded_map(): add docstring
  get_expanded_map(): avoid memory leak
  fetch: only opportunistically update references based on command line
  fetch --tags: fetch tags *in addition to* other stuff
  fetch --prune: prune only based on explicit refspecs
  query_refspecs(): move some constants out of the loop
  builtin/remote.c: reorder function definitions
  builtin/remote.c:update(): use struct argv_array
  fetch, remote: properly convey --no-prune options to subprocesses
  fetch-options.txt: simplify ifdef/ifndef/endif usage
  git-fetch.txt: improve description of tag auto-following
  ref_remove_duplicates(): avoid redundant bisection
  t5536: new test of refspec conflicts when fetching
  ref_remove_duplicates(): simplify loop logic
  ref_remote_duplicates(): extract a function handle_duplicate()
  handle_duplicate(): mark error message for translation
  fetch: improve the error messages emitted for conflicting refspecs

 Documentation/config.txt                 |   4 +-
 Documentation/fetch-options.txt          |  26 +--
 Documentation/git-fetch.txt              |  14 +-
 Documentation/technical/api-remote.txt   |  20 +--
 builtin/fetch.c                          | 298 ++++++++++++++++---------------
 builtin/remote.c                         | 196 ++++++++++----------
 git-pull.sh                              |   2 +-
 remote.c                                 |  94 +++++++---
 remote.h                                 |   8 +-
 t/t5510-fetch.sh                         |  36 +++-
 t/t5515/fetch.br-unconfig_--tags_.._.git |   1 +
 t/t5515/fetch.master_--tags_.._.git      |   1 +
 t/t5525-fetch-tagopt.sh                  |  23 ++-
 t/t5536-fetch-conflicts.sh               | 100 +++++++++++
 14 files changed, 503 insertions(+), 320 deletions(-)
 create mode 100755 t/t5536-fetch-conflicts.sh

-- 
1.8.4.1

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2013-10-30 17:41 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-30  5:32 [PATCH v2 00/23] Change semantics of "fetch --tags" Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 01/23] t5510: use the correct tag name in test Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 02/23] t5510: prepare test refs more straightforwardly Michael Haggerty
2013-10-30 10:57   ` Ramkumar Ramachandra
2013-10-30 17:41     ` Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 03/23] t5510: check that "git fetch --prune --tags" does not prune branches Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 04/23] api-remote.txt: correct section "struct refspec" Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 05/23] get_ref_map(): rename local variables Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 06/23] builtin/fetch.c: reorder function definitions Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 07/23] get_expanded_map(): add docstring Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 08/23] get_expanded_map(): avoid memory leak Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 09/23] fetch: only opportunistically update references based on command line Michael Haggerty
2013-10-30  5:32 ` [PATCH v2 10/23] fetch --tags: fetch tags *in addition to* other stuff Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 11/23] fetch --prune: prune only based on explicit refspecs Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 12/23] query_refspecs(): move some constants out of the loop Michael Haggerty
2013-10-30 11:05   ` Ramkumar Ramachandra
2013-10-30 17:31     ` Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 13/23] builtin/remote.c: reorder function definitions Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 14/23] builtin/remote.c:update(): use struct argv_array Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 15/23] fetch, remote: properly convey --no-prune options to subprocesses Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 16/23] fetch-options.txt: simplify ifdef/ifndef/endif usage Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 17/23] git-fetch.txt: improve description of tag auto-following Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 18/23] ref_remove_duplicates(): avoid redundant bisection Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 19/23] t5536: new test of refspec conflicts when fetching Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 20/23] ref_remove_duplicates(): simplify loop logic Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 21/23] ref_remote_duplicates(): extract a function handle_duplicate() Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 22/23] handle_duplicate(): mark error message for translation Michael Haggerty
2013-10-30  5:33 ` [PATCH v2 23/23] fetch: improve the error messages emitted for conflicting refspecs Michael Haggerty

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).