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

[PATCH v7 5/9] submodule: extract normalize_path into standalone function

From
Jon Seymour <jon.seymour@gmail.com>
Date
May 27, 2012, 15:34 UTC
Message-ID
<1338132851-23497-6-git-send-email-jon.seymour@gmail.com>
In-Reply-To
<1338132851-23497-1-git-send-email-jon.seymour@gmail.com>
Extract the normalize_path function so that it can be re-used elsewhere.
Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
---
 git-submodule.sh | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh
index 64a70d6..dbbc905 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -176,6 +176,21 @@ module_clone()
 	(clear_local_git_env; cd "$sm_path" && GIT_WORK_TREE=. git config core.worktree "$rel/$b")
 }
 
+normalize_path()
+{
+	# normalize path:
+	# multiple //; leading ./; /./; /../; trailing /
+	printf '%s/\n' "$1" |
+		sed -e '
+			s|//*|/|g
+			s|^\(\./\)*||
+			s|/\./|/|g
+			:start
+			s|\([^/]*\)/\.\./||
+			tstart
+			s|/*$||
+		'
+}
 #
 # Add a new submodule to the working tree, .gitmodules and the index
 #
@@ -250,18 +265,7 @@ cmd_add()
 	;;
 	esac
 
-	# normalize path:
-	# multiple //; leading ./; /./; /../; trailing /
-	sm_path=$(printf '%s/\n' "$sm_path" |
-		sed -e '
-			s|//*|/|g
-			s|^\(\./\)*||
-			s|/\./|/|g
-			:start
-			s|\([^/]*\)/\.\./||
-			tstart
-			s|/*$||
-		')
+	sm_path="$(normalize_path "$sm_path")"
 	git ls-files --error-unmatch "$sm_path" > /dev/null 2>&1 &&
 	die "$(eval_gettext "'\$sm_path' already exists in the index")"
 
-- 
1.7.10.2.656.g24a6219
Previous: Jon SeymourNext: Jon Seymour
Message 6 of 17 in “submodule: improve robustness of path handling”
  1. 0/9 submodule: improve robustness of path handlingJon Seymour, May 27, 2012
  2. 1/9 submodule: additional regression tests for relative URLsJon Seymour, May 27, 2012
  3. 2/9 submodule: document failure to detect invalid submodule URLsJon Seymour, May 27, 2012
  4. 3/9 submodule: document failure to handle relative superproject origin URLsJon Seymour, May 27, 2012
  5. 4/9 submodule: document failure to handle improperly normalized remote origin URLsJon Seymour, May 27, 2012
  6. 5/9 submodule: extract normalize_path into standalone functionJon Seymour, May 27, 2012
  7. 6/9 submodule: fix detection of invalid submodule URLJon Seymour, May 27, 2012
  8. Johannes SixtMay 28, 2012
  9. Jon SeymourMay 28, 2012
  10. Jon SeymourJun 3, 2012
  11. 7/9 submodule: fix sync handling of relative superproject origin URLsJon Seymour, May 27, 2012
  12. 8/9 submodule: fix handling of denormalized superproject origin URLsJon Seymour, May 27, 2012
  13. Jon SeymourMay 27, 2012
  14. 9/9 submodule: fix normalization to handle repeated ./Jon Seymour, May 27, 2012
  15. Jens LehmannMay 28, 2012
  16. Jon SeymourMay 28, 2012
  17. Jens LehmannMay 29, 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.