Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
.. framework git workflow jj-config.md jj-init-bare.md jj-init-colocate.md rad-auth-errors.md rad-auth.md rad-block.md rad-checkout-repo-config-linux.md rad-checkout-repo-config-macos.md rad-checkout.md rad-clean.md rad-clone-all.md rad-clone-bare.md rad-clone-connect.md rad-clone-directory.md rad-clone-partial-fail.md rad-clone-scope.md rad-clone-unknown.md rad-clone.md rad-cob-log.md rad-cob-migrate.md rad-cob-multiset rad-cob-multiset.md rad-cob-operations.md rad-cob-show.md rad-cob-update-identity.md rad-cob-update.md rad-config.md rad-diff.md rad-fetch.md rad-fork.md rad-help.md rad-id-collaboration.md rad-id-conflict.md rad-id-multi-delegate.md rad-id-private.md rad-id-threshold-soft-fork.md rad-id-threshold.md rad-id-unauthorized-delegate.md rad-id-unknown-field.md rad-id-update-delete-field.md rad-id.md rad-inbox.md rad-init-detached-head.md rad-init-existing-bare.md rad-init-existing.md rad-init-no-git.md rad-init-no-seed.md rad-init-private-clone-seed.md rad-init-private-clone.md rad-init-private-no-seed.md rad-init-private-seed.md rad-init-private.md rad-init-sync-not-connected.md rad-init-sync-preferred.md rad-init-sync-timeout.md rad-init-sync.md rad-init-with-existing-remote.md rad-init.md rad-inspect-noauth.md rad-inspect.md rad-issue-list.md rad-issue.md rad-key-mismatch.md rad-merge-after-update.md rad-merge-no-ff.md rad-merge-via-push.md rad-node.md rad-patch-ahead-behind.md rad-patch-change-base.md rad-patch-checkout-force.md rad-patch-checkout-revision.md rad-patch-checkout.md rad-patch-delete.md rad-patch-detached-head.md rad-patch-diff.md rad-patch-draft.md rad-patch-edit.md rad-patch-fetch-1.md rad-patch-fetch-2.md rad-patch-jj.md rad-patch-merge-draft.md rad-patch-open-explore.md rad-patch-pull-update.md rad-patch-revert-merge.md rad-patch-update.md rad-patch-via-push.md rad-patch.md rad-publish.md rad-push-and-pull-patches.md rad-remote.md rad-review-by-hunk.md rad-seed-and-follow.md rad-seed-many.md rad-seed-policy-allow-no-scope.md rad-seed-scope.md rad-self.md rad-sync-without-node.md rad-sync.md rad-unseed-many.md rad-unseed.md rad-warn-old-nodes.md rad-watch.md
heartwood crates radicle-cli examples rad-diff.md
$ rad diff
! Deprecated: The command/option `rad diff` is deprecated and will be removed. Please use `git diff` instead.

Exploring rad diff.

#include <stdio.h>

int main(void) {
    printf("Hello World!\n");
    return 0;
}
$ ls
README
main.c
$ git mv README README.md
$ git add main.c
$ git commit -m "Make changes"
[master 5f771e0] Make changes
 2 files changed, 6 insertions(+)
 rename README => README.md (100%)
 create mode 100644 main.c
$ rad diff HEAD^ HEAD
diff --git a/README b/README.md
similarity index 100%
rename from README
rename to README.md
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..aae4e0e
--- /dev/null
+++ b/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(void) {
+    printf("Hello World!/n");
+    return 0;
+}
$ sed -i 's/Hello World/Hello Radicle/' main.c
$ rad diff
diff --git a/main.c b/main.c
index aae4e0e..a3ed869 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
 int main(void) {
-    printf("Hello World!/n");
+    printf("Hello Radicle!/n");
     return 0;
 }
$ git add main.c
$ rad diff
$ rad diff --staged
diff --git a/main.c b/main.c
index aae4e0e..a3ed869 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
 int main(void) {
-    printf("Hello World!/n");
+    printf("Hello Radicle!/n");
     return 0;
 }
$ git rm -f -q main.c
$ rad diff --staged
diff --git a/main.c b/main.c
deleted file mode 100644
index aae4e0e..0000000
--- a/main.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-int main(void) {
-    printf("Hello World!/n");
-    return 0;
-}

For now, copies are not detected.

$ git reset --hard master -q
$ mkdir docs
$ cp README.md docs/README.md
$ git add docs
$ rad diff --staged
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..980a0d5
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1 @@
+Hello World!
$ git reset
$ git checkout .

Empty file.

$ touch EMPTY
$ git add EMPTY
$ rad diff --staged
diff --git a/EMPTY b/EMPTY
new file mode 100644
index 0000000..e69de29
$ git reset
$ git checkout .

File mode change.

$ chmod +x README.md
$ rad diff
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
$ git reset -q
$ git checkout .

Binary file.

$ touch file.bin
$ truncate -s 8 file.bin
$ git add file.bin
$ rad diff --staged
diff --git a/file.bin b/file.bin
new file mode 100644
index 0000000..1b1cb4d
Binary files /dev/null and b/file.bin differ
``` (stderr)
$ rad diff
! Deprecated: The command/option `rad diff` is deprecated and will be removed. Please use `git diff` instead.
```

Exploring `rad diff`.

``` ./main.c
#include <stdio.h>

int main(void) {
    printf("Hello World!\n");
    return 0;
}
```

```
$ ls
README
main.c
```

```
$ git mv README README.md
$ git add main.c
$ git commit -m "Make changes"
[master 5f771e0] Make changes
 2 files changed, 6 insertions(+)
 rename README => README.md (100%)
 create mode 100644 main.c
```

```
$ rad diff HEAD^ HEAD
diff --git a/README b/README.md
similarity index 100%
rename from README
rename to README.md
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..aae4e0e
--- /dev/null
+++ b/main.c
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(void) {
+    printf("Hello World!/n");
+    return 0;
+}
```

```
$ sed -i 's/Hello World/Hello Radicle/' main.c
$ rad diff
diff --git a/main.c b/main.c
index aae4e0e..a3ed869 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
 int main(void) {
-    printf("Hello World!/n");
+    printf("Hello Radicle!/n");
     return 0;
 }
```

```
$ git add main.c
$ rad diff
$ rad diff --staged
diff --git a/main.c b/main.c
index aae4e0e..a3ed869 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
 int main(void) {
-    printf("Hello World!/n");
+    printf("Hello Radicle!/n");
     return 0;
 }
```

```
$ git rm -f -q main.c
$ rad diff --staged
diff --git a/main.c b/main.c
deleted file mode 100644
index aae4e0e..0000000
--- a/main.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-int main(void) {
-    printf("Hello World!/n");
-    return 0;
-}
```

For now, copies are not detected.

```
$ git reset --hard master -q
$ mkdir docs
$ cp README.md docs/README.md
$ git add docs
$ rad diff --staged
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..980a0d5
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1 @@
+Hello World!
$ git reset
$ git checkout .
```

Empty file.

```
$ touch EMPTY
$ git add EMPTY
$ rad diff --staged
diff --git a/EMPTY b/EMPTY
new file mode 100644
index 0000000..e69de29
$ git reset
$ git checkout .
```

File mode change.

```
$ chmod +x README.md
$ rad diff
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
$ git reset -q
$ git checkout .
```

Binary file.

```
$ touch file.bin
$ truncate -s 8 file.bin
$ git add file.bin
$ rad diff --staged
diff --git a/file.bin b/file.bin
new file mode 100644
index 0000000..1b1cb4d
Binary files /dev/null and b/file.bin differ
```