mirror of
https://github.com/jj-vcs/jj.git
synced 2025-12-23 06:01:01 +00:00
The original idea was to completely replace git_refs with remotes["git"] by
introducing "forgotten" state, but it turned out to break "fetch && undo"
scenario. There are other ways around, but they also have problems:
* Sets tombstone on forgotten/deleted remote refs, exports remote refs without
comparing to the known refs.
* `jj undo` would need to insert tombstone by diffing old/new views.
* `jj branch forget` would need to preserve the @git branch whereas the other
remote branches would be forgotten.
* Always overwrites remote refs on export.
* `jj git export` without importing would discard remote refs.
So, I decided to not remove git_refs. Apparently, it also improves the undo
behavior. In the new model, `jj git fetch && jj undo && jj git fetch` works
even if git_refs isn't rolled back. So we can unify the default of
`jj undo --what`.
|
||
|---|---|---|
| .. | ||
| design | ||
| technical | ||
| branches.md | ||
| code-of-conduct.md | ||
| config.md | ||
| config.toml | ||
| conflicts.md | ||
| contributing.md | ||
| FAQ.md | ||
| git-comparison.md | ||
| git-compatibility.md | ||
| github.md | ||
| glossary.md | ||
| install-and-setup.md | ||
| operation-log.md | ||
| related-work.md | ||
| revsets.md | ||
| sapling-comparison.md | ||
| templates.md | ||
| tutorial.md | ||
| working-copy.md | ||