Open28

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
かんちゅかんちゅ

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
かんちゅかんちゅ

✍雑感✍

  • 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 拡張が僕の環境だとエラー吐いてなんもわからん