Sapling 素振り
これが気になったので試してみる。既存のgitリポジトリに対して動かせるWrapperみたいな感じっぽい。
インストール
Installation | Sapling
Getting started する Getting started | Sapling
ユーザーネーム設定する。メールアドレスは明示的にそういうパラメータがあるというよりは
ユーザーネームの中に入れる感じ?
❯ sl config --user ui.username "tainakanchu <tainakanchu815@gmail.com>"
updated config in C:\Users\kanch\AppData\Roaming\sapling\sapling.conf
~
❯ cat C:\Users\kanch\AppData\Roaming\sapling\sapling.conf
# example user config (see 'sl help config' for more info)
[ui]
# name and email, e.g.
# username = Jane Doe <jdoe@example.com>
username =tainakanchu <tainakanchu815@gmail.com>
# uncomment to disable color in command output
# (see 'sl help color' for details)
# color = never
# uncomment to disable command output pagination
# (see 'sl help pager' for details)
# paginate = never
[extensions]
# uncomment these lines to enable some popular extensions
# (see 'sl help extensions' for more info)
#
# amend =
gh を使うのが推奨っぽい。すでに入ってはいるが git-protocol https の指定をしてるかがわからない。ので言われるがままに再認証しておく
❯ gh auth login --git-protocol https
? What account do you want to log into? GitHub.com
? You're already logged into github.com. Do you want to re-authenticate? Yes
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
! First copy your one-time code: XXXX-XXXX
Press Enter to open github.com in your browser...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as tainakanchu
これでもうクローンできるっぽい
❯ sl clone https://github.com/software-mansion/react-native-svg
remote: Enumerating objects: 17426, done.
remote: Counting objects: 100% (704/704), done.
remote: Compressing objects: 100% (346/346), done.
remote: Total 17426 (delta 390), reused 513 (delta 291), pack-reused 16722
0 MiB | 7.94 MiB/s
Receiving objects: 100% (17426/17426), 17.24 MiB | 7.88 MiB/s, done.
Resolving deltas: 100% (10962/10962), done.
From https://github.com/software-mansion/react-native-svg
* [new ref] 6182ca3501e631a04f0bcf8053054c51b00d2fa8 -> remote/main
759 files updated, 0 files merged, 0 files removed, 0 files unresolved
~\workspace took 7s
例ではgithubのurlになってたけどこれは.gitのurlでも大丈夫そう。というかこれはgitも同じか。
sl web
コマンドでなんか見れるらしい
~\workspace\react-native-svg is 📦 v13.6.0 via v18.7.0
❯ sl web
C:\Users\kanch\workspace\react-native-svg>node.exe "C:\Program Files\Sapling\edenscm-isl\isl-server\dist\run-proxy.js" --port 3011 --command "C:\Program Files\Sapling\sl.exe"
OSSのリポジトリだと勝手にいじっちゃっても困るので勝手のわかる自分のリポジトリでもう1回やる(最初からそうしろという話はそう)
❯ sl clone https://github.com/tainakanchu/pw-homepage-next
remote: Enumerating objects: 3387, done.
remote: Counting objects: 100% (657/657), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 3387 (delta 526), reused 629 (delta 504), pack-reused 2730Receiving objects: 100% (3387/3387), 46.99 MiReceiving objects: 100% (3387/3387), 50.17 MiB | 7.22 MiB/s, done.
Resolving deltas: 100% (2121/2121), done.
From https://github.com/tainakanchu/pw-homepage-next
* [new ref] e13200d07d4c438154e3535283a19f324cd76969 -> remote/main
* [new ref] 8db36dea2b99c12006ecf779db981a01159c299f -> remote/master
204 files updated, 0 files merged, 0 files removed, 0 files unresolved
~\workspace\pw took 14s
ブランチの変更 master デフォルトブランチ以外はこのタイミングで引っ張ってくるんかな
workspace\pw\pw-homepage-next via v18.7.0
❯ sl goto --rev remote/develop
pulling 'develop' from 'https://github.com/tainakanchu/pw-homepage-next'
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
yarn.lock を程よく整理して差分を作るとこう出てくる
ここでコミットできる
commit and submit したらそのままプルリクがつくられた。ブランチ名は適当につくられた
developに向かってほしかったけどmasterにむけられた。その辺は設定なんだろう。(GitHubの設定?)
もう1個コミット、nextをbumpしてみた。
sl コマンド単体で tree みたいなのが見れる
workspace\pw\pw-homepage-next via v18.7.0
❯ sl
@ 85f38c856 7 minutes ago tainakanchu815
│ deps: bump next
│
o eede11bf7 18 minutes ago tainakanchu815 #226
│ deps: rearrange yarn.lock
│
o │ 8db36dea2 8 26 at 12:01 tainakanchu815 remote/master
├─╮ Merge pull request #197 from tainakanchu/staging
╷ │
╷ o b65b68da2 8 26 at 04:55 tainakanchu815 remote/develop
╭─╯ Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/develop/autoprefixer…
╷
o e13200d07 2021-09-08 04:22 remote/main
│
~
ターミナルからpr出すときは sl pr
workspace\pw\pw-homepage-next via v18.7.0
❯ sl pr
#226 is up-to-date
pushing 1 to https://github.com/tainakanchu/pw-homepage-next
created new pull request: https://github.com/tainakanchu/pw-homepage-next/pull/227
updated body for https://github.com/tainakanchu/pw-homepage-next/pull/227
updated body for https://github.com/tainakanchu/pw-homepage-next/pull/226
マージした。
git 目線ではこう見える
VSCodeの拡張があるので入れてみる
Sapling SCM - Visual Studio Marketplace
✍雑感✍
-
Installation に書いてあったけど、powershell を使う場合は powershellにすでにある sl コマンドと競合してひと悶着あるらしい
- powershell 開いてるのに気づかなくてコマンドが通らなくて焦った
- というかSLが走るslコマンドとかネタであったけど、入れてると競合しそう
- まだちゃんと使ってないからなんともいえんが、ブランチ全体俯瞰する方法とかはあるのかな
- prするときにブランチ名がよしなに決められるのでブランチ名の命名規則とかがあると辛そう
- パフォーマンス的なメリットあるのかな?そもそもMetaが巨大なプロジェクトに対するソリューションと言うかたちで打ち出してたのだが、手元にそんなに巨大なプロジェクトがない。
- iTunes LibraryをまるごとGitで管理したい、みたいな思いがあってそれに使えないかなと思ってお試ししてみた背景がある
- .git ファイルが直下に無いので付随して色々起こる
- yarn install 終わったあとに「git リポジトリじゃないっすよ」みたいなwarningを出す
- git 系の VSCode 拡張(git graph, git lensとか)が軒並みworkしない
- ただし gh コマンドは使えるのでそれになれてれば適当に移行はできそう
- VSCode拡張がもう少しこなれたらとっつきやすくなるのかな
- Sapling 公式の VSCode 拡張が僕の環境だとエラー吐いてなんもわからん