aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gitalias/git-sw.go
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-07-13 00:57:55 +0900
committernsfisis <nsfisis@gmail.com>2023-07-13 00:58:21 +0900
commit616d202b75034d7a6a6c8f6e88e636cd93b38270 (patch)
tree5d325eceaaebeadc6562e9905ae5232d63a9a075 /src/gitalias/git-sw.go
parentbe32bf44d629849a75f3536a885e612d8d51b1ee (diff)
downloaddotfiles-616d202b75034d7a6a6c8f6e88e636cd93b38270.tar.gz
dotfiles-616d202b75034d7a6a6c8f6e88e636cd93b38270.tar.zst
dotfiles-616d202b75034d7a6a6c8f6e88e636cd93b38270.zip
git:git-sw: add "-d" flag if the given ref seems to be commit hash
Diffstat (limited to 'src/gitalias/git-sw.go')
-rw-r--r--src/gitalias/git-sw.go18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/gitalias/git-sw.go b/src/gitalias/git-sw.go
index 78f7397..5c098a1 100644
--- a/src/gitalias/git-sw.go
+++ b/src/gitalias/git-sw.go
@@ -51,7 +51,23 @@ func requiresDetachFlag(argv []string) bool {
return false
}
firstArg := argv[1]
- return strings.HasPrefix(firstArg, "origin/") || strings.HasPrefix(firstArg, "upstream/")
+
+ // Example: origin/main, upstream/develop
+ if strings.HasPrefix(firstArg, "origin/") || strings.HasPrefix(firstArg, "upstream/") {
+ return true
+ }
+
+ // Example: 1234, cafebabe
+ if len(firstArg) >= 4 {
+ for _, c := range firstArg {
+ if !unicode.Is(unicode.ASCII_Hex_Digit, c) {
+ return false
+ }
+ }
+ return true
+ }
+
+ return false
}
func isInt(s string) bool {