Fossil SCM
Added info about fossil undo, fossil amend, and shunning to the fossil-v-git doc, with comparison to the Git way of changing history.
Commit
e878d54dcc27d8846d37a6c23c2627f2f311e77da741445bacb9805f4bc41888
Parent
69ec89b5914a34d…
1 file changed
+24
-1
+24
-1
| --- www/fossil-v-git.wiki | ||
| +++ www/fossil-v-git.wiki | ||
| @@ -409,11 +409,20 @@ | ||
| 409 | 409 | makes the history of a Fossil project "messy." But another point of view |
| 410 | 410 | is that this makes the history "accurate." In actual practice, the |
| 411 | 411 | superior reporting tools available in Fossil mean that the added "mess" |
| 412 | 412 | is not a factor. |
| 413 | 413 | |
| 414 | -One commentator has mused that Git records history according to | |
| 414 | +Like Git, Fossil has an [/help?cmd=amend|amend command] for modifying | |
| 415 | +prior commits, but unlike in Git, this works not by replacing data in | |
| 416 | +the repository, but by adding a correction record to the repository that | |
| 417 | +affects how later Fossil operations present the corrected data. The old | |
| 418 | +information is still there in the repository, it is just overridden from | |
| 419 | +the amendment point forward. For extreme situations, Fossil adds the | |
| 420 | +[/doc/trunk/www/shunning.wiki|shunning mechanism], but it has strict | |
| 421 | +limitations that prevent global history rewrites. | |
| 422 | + | |
| 423 | +One commentator characterized Git as recording history according to | |
| 415 | 424 | the victors, whereas Fossil records history as it actually happened. |
| 416 | 425 | |
| 417 | 426 | |
| 418 | 427 | <h2 id="missing">3.0 Missing Features</h2> |
| 419 | 428 | |
| @@ -462,10 +471,24 @@ | ||
| 462 | 471 | * <b>The [/help?cmd=ui|fossil ui] command</b> |
| 463 | 472 | |
| 464 | 473 | Fossil supports an integrated web interface. Some of the same features |
| 465 | 474 | are available using third-party add-ons for Git, but they do not provide |
| 466 | 475 | nearly as many features and they are not nearly as convenient to use. |
| 476 | + | |
| 477 | + * <b>The [/help?cmd=undo|fossil undo] command</b> | |
| 478 | + | |
| 479 | + Whenever Fossil is told to modify the local checkout in some | |
| 480 | + destructive way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil | |
| 481 | + update], [/help?cmd=revert|fossil revert], etc.) Fossil remembers the | |
| 482 | + prior state and is able to return the local check-out directory to | |
| 483 | + its prior state with a simple "fossil undo" command. You | |
| 484 | + [#history|cannot undo a commit], since writes to the actual | |
| 485 | + repository — as opposed to the local check-out directory — are more | |
| 486 | + or less permanent, on purpose, but as long as the change is simply | |
| 487 | + staged locally, Fossil makes undo | |
| 488 | + [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than | |
| 489 | + in Git]. | |
| 467 | 490 | |
| 468 | 491 | |
| 469 | 492 | <h3 id="missing-in-fossil">3.2 Features found in Git but missing from Fossil</h3> |
| 470 | 493 | |
| 471 | 494 | * <b>Rebase</b> |
| 472 | 495 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -409,11 +409,20 @@ | |
| 409 | makes the history of a Fossil project "messy." But another point of view |
| 410 | is that this makes the history "accurate." In actual practice, the |
| 411 | superior reporting tools available in Fossil mean that the added "mess" |
| 412 | is not a factor. |
| 413 | |
| 414 | One commentator has mused that Git records history according to |
| 415 | the victors, whereas Fossil records history as it actually happened. |
| 416 | |
| 417 | |
| 418 | <h2 id="missing">3.0 Missing Features</h2> |
| 419 | |
| @@ -462,10 +471,24 @@ | |
| 462 | * <b>The [/help?cmd=ui|fossil ui] command</b> |
| 463 | |
| 464 | Fossil supports an integrated web interface. Some of the same features |
| 465 | are available using third-party add-ons for Git, but they do not provide |
| 466 | nearly as many features and they are not nearly as convenient to use. |
| 467 | |
| 468 | |
| 469 | <h3 id="missing-in-fossil">3.2 Features found in Git but missing from Fossil</h3> |
| 470 | |
| 471 | * <b>Rebase</b> |
| 472 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -409,11 +409,20 @@ | |
| 409 | makes the history of a Fossil project "messy." But another point of view |
| 410 | is that this makes the history "accurate." In actual practice, the |
| 411 | superior reporting tools available in Fossil mean that the added "mess" |
| 412 | is not a factor. |
| 413 | |
| 414 | Like Git, Fossil has an [/help?cmd=amend|amend command] for modifying |
| 415 | prior commits, but unlike in Git, this works not by replacing data in |
| 416 | the repository, but by adding a correction record to the repository that |
| 417 | affects how later Fossil operations present the corrected data. The old |
| 418 | information is still there in the repository, it is just overridden from |
| 419 | the amendment point forward. For extreme situations, Fossil adds the |
| 420 | [/doc/trunk/www/shunning.wiki|shunning mechanism], but it has strict |
| 421 | limitations that prevent global history rewrites. |
| 422 | |
| 423 | One commentator characterized Git as recording history according to |
| 424 | the victors, whereas Fossil records history as it actually happened. |
| 425 | |
| 426 | |
| 427 | <h2 id="missing">3.0 Missing Features</h2> |
| 428 | |
| @@ -462,10 +471,24 @@ | |
| 471 | * <b>The [/help?cmd=ui|fossil ui] command</b> |
| 472 | |
| 473 | Fossil supports an integrated web interface. Some of the same features |
| 474 | are available using third-party add-ons for Git, but they do not provide |
| 475 | nearly as many features and they are not nearly as convenient to use. |
| 476 | |
| 477 | * <b>The [/help?cmd=undo|fossil undo] command</b> |
| 478 | |
| 479 | Whenever Fossil is told to modify the local checkout in some |
| 480 | destructive way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil |
| 481 | update], [/help?cmd=revert|fossil revert], etc.) Fossil remembers the |
| 482 | prior state and is able to return the local check-out directory to |
| 483 | its prior state with a simple "fossil undo" command. You |
| 484 | [#history|cannot undo a commit], since writes to the actual |
| 485 | repository — as opposed to the local check-out directory — are more |
| 486 | or less permanent, on purpose, but as long as the change is simply |
| 487 | staged locally, Fossil makes undo |
| 488 | [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than |
| 489 | in Git]. |
| 490 | |
| 491 | |
| 492 | <h3 id="missing-in-fossil">3.2 Features found in Git but missing from Fossil</h3> |
| 493 | |
| 494 | * <b>Rebase</b> |
| 495 |