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

[PATCH 6/9] git-sh-setup: move create_virtual_base() to mergetools/p4merge

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Sep 2, 2021, 16:01 UTC
Message-ID
<patch-6.9-d2d65f3d77f-20210902T155758Z-avarab@gmail.com>
In-Reply-To
<cover-0.9-00000000000-20210902T155758Z-avarab@gmail.com>

Move the create_virtual_base() function out of "git-sh-setup" to its only user, "mergetools/p4merge". Since 1a92e53ba36 (merge-one-file: use empty blob for add/add base, 2016-02-23) when git-merge-one-file.sh stopped using it, it has only been used in "mergetools/p4merge".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Documentation/git-sh-setup.txt |  6 ------
 git-sh-setup.sh                | 12 ------------
 mergetools/p4merge             | 12 ++++++++++++
 3 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/Documentation/git-sh-setup.txt b/Documentation/git-sh-setup.txt
index 1d8c87e9b2f..2febe754206 100644
--- a/Documentation/git-sh-setup.txt
+++ b/Documentation/git-sh-setup.txt
@@ -66,12 +66,6 @@ get_author_ident_from_commit::
 	outputs code for use with eval to set the GIT_AUTHOR_NAME,
 	GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit.
 
-create_virtual_base::
-	modifies the first file so only lines in common with the
-	second file remain. If there is insufficient common material,
-	then the first file is left empty. The result is suitable
-	as a virtual base input for a 3-way merge.
-
 GIT
 ---
 Part of the linkgit:git[1] suite
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 363c0096842..6a21238dc0e 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -238,18 +238,6 @@ clear_local_git_env() {
 	unset $(git rev-parse --local-env-vars)
 }
 
-# Generate a virtual base file for a two-file merge. Uses git apply to
-# remove lines from $1 that are not in $2, leaving only common lines.
-create_virtual_base() {
-	sz0=$(wc -c <"$1")
-	@@DIFF@@ -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add
-	sz1=$(wc -c <"$1")
-
-	# If we do not have enough common material, it is not
-	# worth trying two-file merge using common subsections.
-	expr $sz0 \< $sz1 \* 2 >/dev/null || : >"$1"
-}
-
 
 # Platform specific tweaks to work around some commands
 case $(uname -s) in
diff --git a/mergetools/p4merge b/mergetools/p4merge
index 7a5b291dd28..23f8735efa2 100644
--- a/mergetools/p4merge
+++ b/mergetools/p4merge
@@ -19,6 +19,18 @@ diff_cmd () {
 	fi
 }
 
+# Generate a virtual base file for a two-file merge. Uses git apply to
+# remove lines from $1 that are not in $2, leaving only common lines.
+create_virtual_base() {
+	sz0=$(wc -c <"$1")
+	@@DIFF@@ -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add
+	sz1=$(wc -c <"$1")
+
+	# If we do not have enough common material, it is not
+	# worth trying two-file merge using common subsections.
+	expr $sz0 \< $sz1 \* 2 >/dev/null || : >"$1"
+}
+
 merge_cmd () {
 	if ! $base_present
 	then
-- 
2.33.0.814.gb82868f05f3
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 9 of 39 in “remove dead shell code”
  1. 0/9 remove dead shell codeÆvar Arnfjörð Bjarmason, Sep 2, 2021
  2. 1/9 git-sh-setup: remove unused set_reflog_action() functionÆvar Arnfjörð Bjarmason, Sep 2, 2021
  3. 2/9 git-sh-setup: remove unused git_editor() functionÆvar Arnfjörð Bjarmason, Sep 2, 2021
  4. 3/9 git-sh-setup: remove unused git_pager() functionÆvar Arnfjörð Bjarmason, Sep 2, 2021
  5. Philippe BlainSep 2, 2021
  6. Andrei RybakSep 2, 2021
  7. 4/9 git-sh-setup: remove unused sane_egrep() functionÆvar Arnfjörð Bjarmason, Sep 2, 2021
  8. 5/9 git-sh-setup: remove unused require_work_tree_exists() functionÆvar Arnfjörð Bjarmason, Sep 2, 2021
  9. 6/9 git-sh-setup: move create_virtual_base() to mergetools/p4mergeÆvar Arnfjörð Bjarmason, Sep 2, 2021
  10. 7/9 git-sh-setup: move peel_committish() function to git-subtree.shÆvar Arnfjörð Bjarmason, Sep 2, 2021
  11. 8/9 git-bisect: remove unused SHA-1 $x40 shell variableÆvar Arnfjörð Bjarmason, Sep 2, 2021
  12. 9/9 test-lib: remove unused $_x40 and $_z40 variablesÆvar Arnfjörð Bjarmason, Sep 2, 2021
  13. Peter BaumannSep 2, 2021
  14. Junio C HamanoSep 2, 2021
  15. Junio C HamanoSep 2, 2021
  16. Carlo ArenasSep 2, 2021
  17. Junio C HamanoSep 2, 2021
  18. Ævar Arnfjörð BjarmasonSep 2, 2021
  19. Junio C HamanoSep 2, 2021
  20. 0/7 remove dead & undocumented shell codeÆvar Arnfjörð Bjarmason, Sep 6, 2021
  21. 2/7 git-sh-setup: remove unused sane_egrep() functionÆvar Arnfjörð Bjarmason, Sep 6, 2021
  22. 3/7 git-sh-setup: move peel_committish() function to git-subtree.shÆvar Arnfjörð Bjarmason, Sep 6, 2021
  23. 1/7 git-sh-setup: remove unused git_pager() functionÆvar Arnfjörð Bjarmason, Sep 6, 2021
  24. Phillip WoodSep 6, 2021
  25. Ævar Arnfjörð BjarmasonSep 6, 2021
  26. Phillip WoodSep 7, 2021
  27. Ævar Arnfjörð BjarmasonSep 7, 2021
  28. Junio C HamanoSep 7, 2021
  29. Ævar Arnfjörð BjarmasonSep 7, 2021
  30. 5/7 git-sh-setup: remove unused "pull with rebase" messageÆvar Arnfjörð Bjarmason, Sep 6, 2021
  31. 4/7 git-sh-setup: clear_local_git_env() function to git-submodule.shÆvar Arnfjörð Bjarmason, Sep 6, 2021
  32. 6/7 git-bisect: remove unused SHA-1 $x40 shell variableÆvar Arnfjörð Bjarmason, Sep 6, 2021
  33. 7/7 test-lib: remove unused $_x40 and $_z40 variablesÆvar Arnfjörð Bjarmason, Sep 6, 2021
  34. 0/4 remove dead & internal-only shell codeÆvar Arnfjörð Bjarmason, Sep 11, 2021
  35. 2/4 git-sh-setup: remove unused "pull with rebase" messageÆvar Arnfjörð Bjarmason, Sep 11, 2021
  36. 1/4 git-submodule: remove unused is_zero_oid() functionÆvar Arnfjörð Bjarmason, Sep 11, 2021
  37. Junio C HamanoSep 13, 2021
  38. 3/4 git-bisect: remove unused SHA-1 $x40 shell variableÆvar Arnfjörð Bjarmason, Sep 11, 2021
  39. 4/4 test-lib: remove unused $_x40 and $_z40 variablesÆvar Arnfjörð Bjarmason, Sep 11, 2021

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.