stak-git 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -8
- package/package.json +1 -1
- package/packaging/PKGBUILD +2 -2
- package/pyproject.toml +1 -1
- package/stak +3 -1
- package/stak_git/stak +3 -1
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# stak
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/stak-git)
|
|
4
|
+
[](https://pypi.org/project/stak-git/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
Minimal stacked changes for git. A lightweight alternative to [Graphite](https://graphite.dev), [ghstack](https://github.com/ezyang/ghstack), and [git-branchless](https://github.com/arxanas/git-branchless).
|
|
4
8
|
|
|
5
9
|
## What is it?
|
|
6
10
|
|
|
@@ -15,13 +19,17 @@ Each branch builds on the previous. Submit all for review at once. When you edit
|
|
|
15
19
|
## Install
|
|
16
20
|
|
|
17
21
|
```bash
|
|
18
|
-
#
|
|
19
|
-
|
|
22
|
+
# Homebrew (macOS/Linux)
|
|
23
|
+
brew install memorypasta/tap/stak
|
|
24
|
+
|
|
25
|
+
# npm
|
|
26
|
+
npm install -g stak-git
|
|
20
27
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
# pip / uv
|
|
29
|
+
pip install stak-git
|
|
30
|
+
|
|
31
|
+
# Direct install
|
|
32
|
+
curl -fsSL https://raw.githubusercontent.com/memorypasta/stak/main/packaging/install.sh | bash
|
|
25
33
|
```
|
|
26
34
|
|
|
27
35
|
## Commands
|
|
@@ -172,11 +180,20 @@ stak ls
|
|
|
172
180
|
# ○ billing-feature (2 branches)
|
|
173
181
|
|
|
174
182
|
# Delete when done
|
|
175
|
-
stak rm-
|
|
183
|
+
stak rm-stack billing-feature
|
|
176
184
|
```
|
|
177
185
|
|
|
178
186
|
Each stak tracks its own chain of branches independently.
|
|
179
187
|
|
|
188
|
+
## Why stak?
|
|
189
|
+
|
|
190
|
+
| Tool | Complexity | Dependencies | Works with any Git host |
|
|
191
|
+
|------|------------|--------------|-------------------------|
|
|
192
|
+
| **stak** | Minimal | Just bash + git | ✅ Yes |
|
|
193
|
+
| Graphite | Full platform | Requires account | ❌ GitHub only |
|
|
194
|
+
| ghstack | Medium | Python | ❌ GitHub only |
|
|
195
|
+
| git-branchless | High | Rust binary | ✅ Yes |
|
|
196
|
+
|
|
180
197
|
## Philosophy
|
|
181
198
|
|
|
182
199
|
- **Minimal**: Only commands you need for stacked changes
|
|
@@ -191,3 +208,7 @@ Each stak tracks its own chain of branches independently.
|
|
|
191
208
|
- Use `stak status` often to see where you are.
|
|
192
209
|
- You can always use raw git commands - stak just helps manage the chain.
|
|
193
210
|
- Run `stak setup-interactive` to install fzf for interactive navigation.
|
|
211
|
+
|
|
212
|
+
## License
|
|
213
|
+
|
|
214
|
+
MIT
|
package/package.json
CHANGED
package/packaging/PKGBUILD
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Maintainer: memorypasta <memorypasta@gmail.com>
|
|
3
3
|
|
|
4
4
|
pkgname=stak
|
|
5
|
-
pkgver=1.0.
|
|
5
|
+
pkgver=1.0.2
|
|
6
6
|
pkgrel=1
|
|
7
7
|
pkgdesc="Minimal stacked changes for git - build big features as small branches"
|
|
8
8
|
arch=('any')
|
|
@@ -11,7 +11,7 @@ license=('MIT')
|
|
|
11
11
|
depends=('git' 'bash')
|
|
12
12
|
optdepends=('fzf: interactive branch selection')
|
|
13
13
|
source=("$pkgname-$pkgver.tar.gz::https://github.com/memorypasta/stak/archive/refs/tags/v$pkgver.tar.gz")
|
|
14
|
-
sha256sums=('
|
|
14
|
+
sha256sums=('3e9393389c725fedd0129944f6b1d8abc8ba8fa9172fba373ff24d4497a39e31')
|
|
15
15
|
|
|
16
16
|
package() {
|
|
17
17
|
cd "$srcdir/stak-$pkgver"
|
package/pyproject.toml
CHANGED
package/stak
CHANGED
|
@@ -82,7 +82,9 @@ validate_stack_name() {
|
|
|
82
82
|
[[ "$name" == *"/"* ]] && die "invalid stack name: cannot contain '/'"
|
|
83
83
|
[[ "$name" == *".."* ]] && die "invalid stack name: cannot contain '..'"
|
|
84
84
|
[[ "$name" == "."* ]] && die "invalid stack name: cannot start with '.'"
|
|
85
|
-
[[ "$name" =~ [^a-zA-Z0-9_-] ]]
|
|
85
|
+
if [[ "$name" =~ [^a-zA-Z0-9_-] ]]; then
|
|
86
|
+
die "invalid stack name: use only letters, numbers, underscore, hyphen"
|
|
87
|
+
fi
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
validate_branch_name() {
|
package/stak_git/stak
CHANGED
|
@@ -82,7 +82,9 @@ validate_stack_name() {
|
|
|
82
82
|
[[ "$name" == *"/"* ]] && die "invalid stack name: cannot contain '/'"
|
|
83
83
|
[[ "$name" == *".."* ]] && die "invalid stack name: cannot contain '..'"
|
|
84
84
|
[[ "$name" == "."* ]] && die "invalid stack name: cannot start with '.'"
|
|
85
|
-
[[ "$name" =~ [^a-zA-Z0-9_-] ]]
|
|
85
|
+
if [[ "$name" =~ [^a-zA-Z0-9_-] ]]; then
|
|
86
|
+
die "invalid stack name: use only letters, numbers, underscore, hyphen"
|
|
87
|
+
fi
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
validate_branch_name() {
|