git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 3/4] fast-export: don't handle uninteresting refs

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Oct 30, 2012, 19:06 UTC
Message-ID
<1351623987-21012-4-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1351623987-21012-1-git-send-email-felipe.contreras@gmail.com>
They have been marked as UNINTERESTING for a reason, lets respect that.
Currently the first ref is handled properly, but not the rest, so:
 % git fast-export master ^master

Would currently throw a reset for master (2nd ref), which is not what we want.

 % git fast-export master ^foo ^bar ^roo
 % git fast-export master salsa..tacos

Even if all these refs point to the same object; foo, bar, roo, salsa, and tacos would all get a reset.

This is most certainly not what we want. After this patch, nothing gets exported, because nothing was selected (everything is UNINTERESTING).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 builtin/fast-export.c  | 7 ++++---
 t/t9350-fast-export.sh | 6 ++++++
 2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 065f324..7fb6fe1 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -523,10 +523,11 @@ static void get_tags_and_duplicates(struct object_array *pending,
 				typename(e->item->type));
 			continue;
 		}
-		if (commit->util)
+		if (commit->util) {
 			/* more than one name for the same object */
-			string_list_append(extra_refs, full_name)->util = commit;
-		else
+			if (!(commit->object.flags & UNINTERESTING))
+				string_list_append(extra_refs, full_name)->util = commit;
+		} else
 			commit->util = full_name;
 	}
 }
diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh
index 49bdb44..6ea8f6f 100755
--- a/t/t9350-fast-export.sh
+++ b/t/t9350-fast-export.sh
@@ -440,4 +440,10 @@ test_expect_success 'fast-export quotes pathnames' '
 	)
 '
 
+test_expect_success 'proper extra refs handling' '
+	git fast-export master ^master master..master > actual &&
+	echo -n > expected &&
+	test_cmp expected actual
+'
+
 test_done
-- 
1.8.0
Previous: Felipe ContrerasNext: Felipe Contreras
Message 4 of 21 in “fast-export: general fixes”
  1. 0/4 fast-export: general fixesFelipe Contreras, Oct 30, 2012
  2. 1/4 fast-export: trivial cleanupFelipe Contreras, Oct 30, 2012
  3. 2/4 fast-export: fix comparisson in testsFelipe Contreras, Oct 30, 2012
  4. 3/4 fast-export: don't handle uninteresting refsFelipe Contreras, Oct 30, 2012
  5. 4/4 fast-export: make sure refs are updated properlyFelipe Contreras, Oct 30, 2012
  6. Jonathan NiederOct 31, 2012
  7. Felipe ContrerasOct 31, 2012
  8. Jonathan NiederOct 31, 2012
  9. Sverre RabbelierOct 31, 2012
  10. Jonathan NiederOct 31, 2012
  11. [OT] How to get the discussion details via notesPeter Baumann, Oct 31, 2012
  12. Drew NorthupOct 31, 2012
  13. Jeff KingOct 31, 2012
  14. Peter BaumannNov 1, 2012
  15. Felipe ContrerasOct 31, 2012
  16. Jeff KingNov 2, 2012
  17. Jonathan NiederNov 2, 2012
  18. Johannes SchindelinNov 2, 2012
  19. Jeff KingNov 2, 2012
  20. Felipe ContrerasNov 2, 2012
  21. Felipe ContrerasNov 2, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.