radicle-cli/tests: Add `rad_jj_patch`
This commit is contained in:
parent
731688d3f2
commit
abc963f2f2
|
|
@ -0,0 +1,19 @@
|
||||||
|
Let's make sure that the config is exactly what we expect.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ jj config list
|
||||||
|
ui.editor = "true"
|
||||||
|
user.name = "Test User"
|
||||||
|
user.email = "test.user@example.com"
|
||||||
|
debug.commit-timestamp = "2001-02-03T04:05:06+07:00"
|
||||||
|
debug.randomness-seed = 0
|
||||||
|
debug.operation-timestamp = "2001-02-03T04:05:06+07:00"
|
||||||
|
operation.hostname = "host.example.com"
|
||||||
|
operation.username = "test-username"
|
||||||
|
```
|
||||||
|
|
||||||
|
We enable writing Change ID headers to our commits.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ jj config set --user git.write-change-id-header true
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
We initialize Jujutusu for our repository by colocating with Git.
|
||||||
|
|
||||||
|
```(stderr)
|
||||||
|
$ jj git init --colocate
|
||||||
|
Done importing changes from the underlying Git repo.
|
||||||
|
Hint: The following remote bookmarks aren't associated with the existing local bookmarks:
|
||||||
|
master@rad
|
||||||
|
Hint: Run `jj bookmark track master@rad` to keep local bookmarks updated on future pulls.
|
||||||
|
Initialized repo in "."
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
The scenario in this file is a variation of the one in `rad-patch.md`,
|
||||||
|
but uses Jujutsu.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ touch REQUIREMENTS
|
||||||
|
$ jj describe --message "Define power requirements"
|
||||||
|
$ jj status
|
||||||
|
Working copy changes:
|
||||||
|
A REQUIREMENTS
|
||||||
|
Working copy (@) : lvxkkpmk a6ea7b72 Define power requirements
|
||||||
|
Parent commit (@-): xpnzuzwn f2de534b master master@rad | Second commit
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
$ jj new
|
||||||
|
```
|
||||||
|
|
||||||
|
Just making sure that Git sees the Change ID…
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git cat-file commit a6ea7b72
|
||||||
|
tree [..]
|
||||||
|
parent f2de534b[..]
|
||||||
|
author Test User <test.user@example.com> 981147906 +0700
|
||||||
|
committer Test User <test.user@example.com> 981147906 +0700
|
||||||
|
change-id lvxkkpmk[..]
|
||||||
|
|
||||||
|
Define power requirements
|
||||||
|
```
|
||||||
|
|
||||||
|
As of 2025-05 we can't use `jj` to do push with options directly, see:
|
||||||
|
|
||||||
|
- <https://github.com/jj-vcs/jj/issues/4075>
|
||||||
|
- <https://github.com/jj-vcs/jj/pull/2098>
|
||||||
|
|
||||||
|
However, since we initialized Jujutusu to colocate with Git, we can just use
|
||||||
|
Git to push.
|
||||||
|
|
||||||
|
``` (stderr)
|
||||||
|
$ git push rad -o patch.message="Define power requirements" -o patch.message="See details." HEAD:refs/patches
|
||||||
|
✓ Patch 1e31055ed3c41a48f2a71ba5317feb863b089700 opened
|
||||||
|
To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
|
||||||
|
* [new reference] HEAD -> refs/patches
|
||||||
|
```
|
||||||
|
|
||||||
|
It will now be listed as one of the open patches.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad patch
|
||||||
|
╭─────────────────────────────────────────────────────────────────────────────────────────╮
|
||||||
|
│ ● ID Title Author Reviews Head + - Updated │
|
||||||
|
├─────────────────────────────────────────────────────────────────────────────────────────┤
|
||||||
|
│ ● 1e31055 Define power requirements alice (you) - a6ea7b7 +0 -0 now │
|
||||||
|
╰─────────────────────────────────────────────────────────────────────────────────────────╯
|
||||||
|
```
|
||||||
|
|
||||||
|
Let's also create a bookmark for it.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ jj bookmark create flux-capacitor-power
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad patch show 1e31055 -p
|
||||||
|
╭───────────────────────────────────────────────────╮
|
||||||
|
│ Title Define power requirements │
|
||||||
|
│ Patch 1e31055[.. ] │
|
||||||
|
│ Author alice (you) │
|
||||||
|
│ Head a6ea7b7[.. ] │
|
||||||
|
│ Base f2de534[.. ] │
|
||||||
|
│ Commits ahead 1, behind 0 │
|
||||||
|
│ Status open │
|
||||||
|
│ │
|
||||||
|
│ See details. │
|
||||||
|
├───────────────────────────────────────────────────┤
|
||||||
|
│ a6ea7b7 Define power requirements │
|
||||||
|
├───────────────────────────────────────────────────┤
|
||||||
|
│ ● Revision 1e31055 @ a6ea7b7 by alice (you) now │
|
||||||
|
╰───────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
commit a6ea7b7[..]
|
||||||
|
Author: Test User <test.user@example.com>
|
||||||
|
Date: Sat Feb 3 04:05:06 2001 +0700
|
||||||
|
|
||||||
|
Define power requirements
|
||||||
|
|
||||||
|
diff --git a/REQUIREMENTS b/REQUIREMENTS
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e69de29
|
||||||
|
|
||||||
|
```
|
||||||
|
|
@ -858,6 +858,17 @@ fn rad_patch() {
|
||||||
Environment::alice(["rad-init", "rad-patch"]);
|
Environment::alice(["rad-init", "rad-patch"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn rad_jj_colocated_patch() {
|
||||||
|
// We test whether `jj` is installed, and have this test succeed if it is not.
|
||||||
|
// Programmatic skipping of tests is not supported as of 2024-08.
|
||||||
|
if !program_reports_version("jj") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Environment::alice(["rad-init", "jj-config", "jj-init-colocate", "rad-patch-jj"])
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn rad_patch_diff() {
|
fn rad_patch_diff() {
|
||||||
Environment::alice(["rad-init", "rad-patch-diff"]);
|
Environment::alice(["rad-init", "rad-patch-diff"]);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue