From 6ac039eb63d90ca8fd858b37871cbf7ec0c545915e888de40da9076fde140f65 Mon Sep 17 00:00:00 2001 From: Johannes Kastl Date: Wed, 18 Dec 2024 15:16:22 +0000 Subject: [PATCH] add completion subpackages for bash, fish and zsh OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/jujutsu?expand=0&rev=34 --- .gitattributes | 23 + .gitignore | 1 + _service | 23 + jj-0.18.0.obscpio | 3 + jj-0.20.0.obscpio | 3 + jj-0.21.0.obscpio | 3 + jj.obsinfo | 4 + jujutsu-0.22.0.obscpio | 3 + jujutsu-0.23.0.obscpio | 3 + jujutsu-0.24.0.obscpio | 3 + jujutsu.changes | 933 +++++++++++++++++++++++++++++++++++++++++ jujutsu.obsinfo | 4 + jujutsu.spec | 137 ++++++ vendor.tar.zst | 3 + 14 files changed, 1146 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 jj-0.18.0.obscpio create mode 100644 jj-0.20.0.obscpio create mode 100644 jj-0.21.0.obscpio create mode 100644 jj.obsinfo create mode 100644 jujutsu-0.22.0.obscpio create mode 100644 jujutsu-0.23.0.obscpio create mode 100644 jujutsu-0.24.0.obscpio create mode 100644 jujutsu.changes create mode 100644 jujutsu.obsinfo create mode 100644 jujutsu.spec create mode 100644 vendor.tar.zst diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..9fa7ef6 --- /dev/null +++ b/_service @@ -0,0 +1,23 @@ + + + https://github.com/martinvonz/jj + git + .git + v0.24.0 + @PARENT_TAG@ + v(.*) + disable + jujutsu + + + + + true + jj + + + + *.tar + gz + + diff --git a/jj-0.18.0.obscpio b/jj-0.18.0.obscpio new file mode 100644 index 0000000..09f85d1 --- /dev/null +++ b/jj-0.18.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c20b2b26a9d97ccde20c500470af0767e78d59dc049bc3d22b1bd05a787b689 +size 5770765 diff --git a/jj-0.20.0.obscpio b/jj-0.20.0.obscpio new file mode 100644 index 0000000..45e8453 --- /dev/null +++ b/jj-0.20.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c095c934750c53479446a3dce6f529a79c3d0b7c7e87e8a2f742e195c994e03 +size 6293005 diff --git a/jj-0.21.0.obscpio b/jj-0.21.0.obscpio new file mode 100644 index 0000000..e1496b5 --- /dev/null +++ b/jj-0.21.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a8a78e26e9d4eeef85188dbe0c633346b8b6ffe52557c4338373d54b2806b73 +size 6437389 diff --git a/jj.obsinfo b/jj.obsinfo new file mode 100644 index 0000000..3f8c986 --- /dev/null +++ b/jj.obsinfo @@ -0,0 +1,4 @@ +name: jj +version: 0.21.0 +mtime: 1725469873 +commit: d002a5ad35e624a731e96e85f490f28febc7797e diff --git a/jujutsu-0.22.0.obscpio b/jujutsu-0.22.0.obscpio new file mode 100644 index 0000000..edcf1b7 --- /dev/null +++ b/jujutsu-0.22.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddfbcdd0dc1005aaf6226a26a3ed6f42beff4a7868e844b21ca478a304f9b68f +size 7652877 diff --git a/jujutsu-0.23.0.obscpio b/jujutsu-0.23.0.obscpio new file mode 100644 index 0000000..e7c1377 --- /dev/null +++ b/jujutsu-0.23.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cddcbfeb587c062e1d3f85c615d28078a351897e8cf47da06826840827b8379 +size 6854157 diff --git a/jujutsu-0.24.0.obscpio b/jujutsu-0.24.0.obscpio new file mode 100644 index 0000000..0cbdaff --- /dev/null +++ b/jujutsu-0.24.0.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cb76d9809a1aa0efeddb734e32747df3f2f031525ea02899e8790de2b3d27f4 +size 7277581 diff --git a/jujutsu.changes b/jujutsu.changes new file mode 100644 index 0000000..7e897e3 --- /dev/null +++ b/jujutsu.changes @@ -0,0 +1,933 @@ +------------------------------------------------------------------- +Wed Dec 18 14:52:06 UTC 2024 - Johannes Kastl + +- add completion subpackages for bash, fish and zsh + +------------------------------------------------------------------- +Thu Dec 5 05:54:17 UTC 2024 - Johannes Kastl + +- update to 0.24.0: + * Breaking changes + - jj move has been removed. It was deprecated in 0.16.0. + - jj checkout and the built-in alias jj co have been removed. + It was deprecated in 0.14.0. + - jj merge has been removed. It was deprecated in 0.14.0. + - jj git push no longer pushes new bookmarks by default. Use + --allow-new to bypass this restriction. + - Lines prefixed with "JJ:" in commit descriptions and in + sparse patterns (from jj sparse edit) are now stripped even + if they are not immediately followed by a space. #5004 + * Deprecations + - None + * New features + - Templates now support the == and != logical operators for + Boolean, Integer, and String types. + - New command jj absorb that moves changes to stack of mutable + revisions. + - New command jj util exec that can be used for arbitrary + aliases. + - jj rebase -b can now be used with the --insert-after and + --insert-before options, like jj rebase -r and jj rebase -s. + - A preview of improved shell completions was added. Please + refer to the documentation to activate them. They + additionally complete context-dependent, dynamic values like + bookmarks, aliases, revisions, operations and files. + - Added the config setting snapshot.auto-update-stale for + automatically running jj workspace update-stale when + applicable. + - jj duplicate now accepts --destination, --insert-after and + --insert-before options to customize the location of the + duplicated revisions. + - jj log now displays the working-copy branch first. + - New fork_point() revset function can be used to obtain the + fork point of multiple commits. + - The tags() revset function now takes an optional pattern + argument, mirroring that of bookmarks(). + - Several commands now support -f/-t shorthands for + --from/--to: + - diff + - diffedit + - interdiff + - op diff + - restore + - New ui.conflict-marker-style config option to change how + conflicts are materialized in the working copy. The default + option ("diff") renders conflicts as a snapshot with a list + of diffs to apply to the snapshot. The new "snapshot" option + renders conflicts as a series of snapshots, showing each side + and base of the conflict. The new "git" option replicates + Git's "diff3" conflict style, meaning it is more likely to + work with external tools, but it doesn't support conflicts + with more than 2 sides. + - New merge-tools..conflict-marker-style config option to + override the conflict marker style used for a specific merge + tool. + - New merge-tools..merge-conflict-exit-codes config + option to allow a merge tool to exit with a non-zero code to + indicate that not all conflicts were resolved. + - jj simplify-parents now supports configuring the default + revset when no --source or --revisions arguments are provided + with the revsets.simplify-parents config. + * Fixed bugs + - jj config unset no longer removes a table (such + as [ui].) + +------------------------------------------------------------------- +Tue Nov 12 09:21:09 UTC 2024 - Johannes Kastl + +- update to 0.23.0 (boo#1233013): + * Security fixes + - Fixed path traversal by cloning/checking out crafted Git + repository containing .., .jj, .git paths. + (GHSA-88h5-6w7m-5w56; CVE-2024-51990) + * Breaking changes + - Revset function names can no longer start with a number. + - Evaluation error of revsets.short-prefixes configuration is + now reported. + - The HEAD@git symbol no longer resolves to the Git HEAD + revision. Use git_head() or @- revset expression instead. The + git_head template keyword now returns a boolean. + - Help command doesn't work recursively anymore, i.e. jj + workspace help root doesn't work anymore. + - The color label op_log from the [colors] config section now + only applies to the op log and not to the other places + operations are displayed. In almost all cases, if you + configured op_log before, you should use the new operation + label instead. + - Default operation log template now shows end times of + operations instead of start times. + * Deprecations + - git.auto-local-bookmark replaces git.auto-local-branch. The + latter remains supported for now (at lower precedence than + the former). + * New features + - Added diff options to ignore whitespace when comparing lines. + Whitespace changes are still highlighted. + - New command jj simplify-parents will remove redundant parent + edges. + - jj squash now supports -f/-t shorthands for --from/--[in]to. + - Initial support for shallow Git repositories has been + implemented. However, deepening the history of a shallow + repository is not yet supported. + - jj git clone now accepts a --depth option, which + allows to clone the repository with a given depth. + - New command jj file annotate that annotates files line by + line. This is similar in functionality to git blame. Invoke + the command with jj file annotate . The output + can be customized via the templates.annotate_commit_summary + config variable. + - jj bookmark list gained a --remote REMOTE option to display + bookmarks belonging to a remote. This option can be combined + with --tracked or --conflicted. + - New command jj config unset that unsets config values. For + example, jj config unset --user user.name. + - jj help now has the flag --keyword (shorthand -k), which can + give help for some keywords (e.g. jj help -k revsets). To see + a list of the available keywords you can do jj help --help. + - New at_operation(op, expr) revset can be used in order to + query revisions based on historical state. + - String literals in filesets, revsets and templates now + support hex bytes (with \e as escape / shorthand for \x1b). + - New coalesce(revsets...) revset which returns commits in the + first revset in the revsets list that does not evaluate to + none(). + - New template function raw_escape_sequence(...) preserves + escape sequences. + - Timestamp objects in templates now have after(date) -> + Boolean and before(date) -> Boolean methods for comparing + timestamps to other dates. + - New template functions pad_start(), pad_end(), + truncate_start(), and truncate_end() are added. + - Add a new template alias + bultin_log_compact_full_description(). + - Added the config settings diff.color-words.context and + diff.git.context to control the default number of lines of + context shown. + * Fixed bugs + - Error on trunk() revset resolution is now handled gracefully. + #4616 + - Updated the built-in diff editor scm-record to version 0.4.0, + which includes multiple fixes. + +------------------------------------------------------------------- +Thu Oct 3 12:13:57 UTC 2024 - Johannes Kastl + +- update to 0.22.0: + * Breaking changes + - Fixing #4239 means the ordering of some messages have + changed. + - Invalid ui.graph.style configuration is now an error. + - The builtin template branch_list has been renamed to + bookmark_list as part of the jj branch deprecation. + * Deprecations + - jj branch has been deprecated in favor of jj bookmark. + - Rationale: Jujutsu's branches don't behave like Git branches, + which a confused many newcomers, as they expected a similar + behavior given the name. We've renamed them to "bookmarks" + to match the actual behavior, as we think that describes them + better, and they also behave similar to Mercurial's + bookmarks. + - jj obslog is now called jj evolution-log/jj evolog. jj obslog + remains as an alias. + - jj unsquash has been deprecated in favor of jj squash and jj + diffedit --restore-descendants. + - Rationale: jj squash can be used in interactive mode to pull + changes from one commit to another, including from a parent + commit to a child commit. For fine-grained dependent diffs, + such as when the parent and the child commits must + successively modify the same location in a file, jj diffedit + --restore-descendants can be used to set the parent commit to + the desired content without altering the content of the child + commit. + - The git.push-branch-prefix config has been deprecated in + favor of git.push-bookmark-prefix. + - conflict() and file() revsets have been renamed to + conflicts() and files() respectively. The old names are still + around and will be removed in a future release. + * New features + - The new config option snapshot.auto-track lets you + automatically track only the specified paths (all paths by + default). Use the new jj file track command to manually + tracks path that were not automatically tracked. There is no + way to list untracked files yet. Use git status in a + colocated workspace as a workaround. #323 + - jj fix now allows fixing unchanged files with the + --include-unchanged-files flag. This can be used to more + easily introduce automatic formatting changes in a new commit + separate from other changes. + - jj workspace add now accepts a --sparse-patterns= + option, which allows control of the sparse patterns for a + newly created workspace: copy (inherit from parent; default), + full (full working copy), or empty (the empty working copy). + - New command jj workspace rename that can rename the current + workspace. + - jj op log gained an option to include operation diffs. + - jj git clone now accepts a --remote option, + which allows to set a name for the remote instead of using + the default origin. + - jj op undo now reports information on the operation that has + been undone. + - jj squash: the -k flag can be used as a shorthand for + --keep-emptied. + - CommitId / ChangeId template types now support .normal_hex(). + - jj commit and jj describe now accept --author option allowing + to quickly change author of given commit. + - jj diffedit, jj abandon, and jj restore now accept a + --restore-descendants flag. When used, descendants of the + edited or deleted commits will keep their original content. + - jj git fetch -b will now warn if the + branch(es) can not be found in any of the + specified/configured remotes. + - jj split now lets the user select all changes in interactive + mode. This may be used to keeping all changes into the first + commit while keeping the current commit description for the + second commit (the newly created empty one). + - Author and committer names are now yellow by default. + * Fixed bugs + - Update working copy before reporting changes. This prevents + errors during reporting from leaving the working copy in a + stale state. + - Fixed panic when parsing invalid conflict markers of a + particular form. (#2611) + - Editing a hidden commit now makes it visible. + - The present() revset now suppresses missing working copy + error. For example, present(@) evaluates to none() if the + current workspace has no working-copy commit. + +------------------------------------------------------------------- +Tue Sep 10 04:57:58 UTC 2024 - Johannes Kastl + +- update to 0.21.0 (boo#1230082): + * Breaking changes + - next/prev will no longer infer when to go into edit mode when + moving from commit to commit. It now either follows the flags + --edit|--no-edit or it gets the mode from ui.movement.edit. + * Deprecations + - jj untrack has been renamed to jj file untrack. + * New features + - Add new boolean config knob, ui.movement.edit for controlling + the behaviour of prev/next. The flag turns edit mode on and + off permanently when set respectively to true or false. + - All diff formats except --name-only now include information + about copies and moves. So do external diff tools in + file-by-file mode. jj status also includes information about + copies and moves. + - Color-words diff has gained an option to display complex + changes as separate lines. It's enabled by default. To + restore the old behavior, set + diff.color-words.max-inline-alternation = -1. + - A tilde (~) at the start of the path will now be expanded to + the user's home directory when configuring a signing.key for + SSH commit signing. + - When reconfiguring the author, warn that the working copy + won't be updated + * Fixed bugs + - Release binaries for Intel Macs have been restored. They were + previously broken due to using a sunset version of GitHub's + macOS runners (but nobody had previously complained.) + +------------------------------------------------------------------- +Thu Aug 8 05:04:18 UTC 2024 - Johannes Kastl + +- update to 0.20.0: + * Breaking changes + - jj rebase --skip-empty has been renamed to jj rebase + --skip-emptied + - jj backout --revision has been renamed to jj backout + --revisions. The short alias -r is still supported. + - The default immutable_heads() set now includes + untracked_remote_branches() with the assumption that + untracked branches aren't managed by you. Therefore, + untracked branches are no longer displayed in jj log by + default. + - Updated defaults for graph node symbol templates + templates.log_node and templates.op_log_node. + - The "fileset" language is now enabled by default. It can + still be disable by setting ui.allow-filesets=false. + - On jj git fetch/import, commits referred to by HEAD@git are + no longer preserved. If a checked-out named branch gets + deleted locally or remotely, the corresponding commits will + be abandoned. + - jj --at-op=@ no longer merges concurrent operations if + explicitly specified. + - jj obslog -p no longer shows diffs at non-partial squash + operations. Previously, it showed the same diffs as the + second predecessor. + * Deprecations + - The original configuration syntax for jj fix is now + deprecated in favor of one that allows defining multiple + tools that can affect different filesets. + These can be used in combination for now. See jj help fix for + details. + * New features + - External diff tools can now be configured to invoke the tool + on each file individually instead of being passed a directory + by setting + merge-tools.$TOOL.diff-invocation-mode="file-by-file" in + config.toml. + - In git diffs, word-level hunks are now highlighted with + underline. See diff colors and styles for customization. + - New .diff().() commit template methods are added. + They can be used in order to show diffs conditionally. For + example, if(current_working_copy, diff.summary()). + - jj git clone and jj git init with an existing git repository + adds the default branch of the remote as repository settings + for revset-aliases."trunk()".` + - jj workspace forget now abandons the workspace's working-copy + commit if it was empty. + - jj backout now includes the backed out commit's subject in + the new commit message. + - jj backout can now back out multiple commits at once. + - jj git clone some/nested/path now creates the full directory + tree for nested destination paths if they don't exist. + - String patterns now support case‐insensitive matching by + suffixing any pattern kind with -i. mine() uses + case‐insensitive matching on your email address + unconditionally. Only ASCII case folding is currently + implemented, but this will likely change in the future. + - String patterns now support regex:"pattern". + - New tracked_remote_branches() and untracked_remote_branches() + revset functions can be used to select tracked/untracked + remote branches. + - The file() revset function now accepts fileset as argument. + - New diff_contains() revset function can be used to search + diffs. + - New command jj operation diff that can compare changes made + between two operations. + - New command jj operation show that can show the changes made + in a single operation. + - New config setting git.private-commits to prevent commits + from being pushed. + - The default commit description template can now be configured + by templates.draft_commit_description. + - jj fix can now be configured to run different tools on + different filesets. This simplifies the use case of + configuring code formatters for specific file types. See jj + help fix for details. + - Added revset functions author_date and committer_date. + - jj describe can now update the description of multiple + commits. + * Fixed bugs + - jj status will show different messages in a conflicted tree, + depending on the state of the working commit. In particular, + if a child commit fixes a conflict in the parent, this will + be reflected in the hint provided by jj status + - jj diff --git no longer shows the contents of binary files. + - Windows binaries no longer require vcruntime140.dll to be + installed (normally through Visual Studio.) + - On quit, the builtin pager no longer waits for all outputs to + be discarded. + - jj branch rename no longer shows a warning in colocated + repos. + +------------------------------------------------------------------- +Thu Jul 11 05:39:28 UTC 2024 - Johannes Kastl + +- update to 0.19.0: + * Breaking changes + - In revset aliases, top-level kind:pattern expression is now + parsed as modifier. Surround with parentheses if it should be + parsed as string/file pattern. + - Dropped support for automatic upgrade of repo formats used by + versions before 0.12.0. + - jj fix now defaults to the broader revset -s reachable(@, + mutable()) instead of -s @. + - Dropped support for deprecated jj branch delete/forget --glob + option. + - jj branch set now creates new branch if it doesn't exist. Use + jj branch move to ensure that the target branch already + exists. #3584 + * Deprecations + - Replacing -l shorthand for --limit with -n in jj log, jj op + log and jj obslog. + - jj split --siblings is deprecated in favor of jj split + --parallel (to match jj parallelize). + - A new jj file subcommand now replaces several existing + uncategorized commands, which are deprecated. + - jj file show replaces jj cat. + - jj file chmod replaces jj chmod. + - jj file list replaces jj files. + * New features + - Support background filesystem monitoring via watchman + triggers enabled with the + core.watchman.register_snapshot_trigger = true config. + - Show paths to config files when configuration errors occur. + - jj fix now supports configuring the default revset for -s + using the revsets.fix config. + - The descendants() revset function now accepts an optional + depth argument; like the ancestors() depth argument, it + limits the depth of the set. + - Revset/template aliases now support function overloading. + #2966 + - Conflicted files are individually simplified before being + materialized. + - The jj file subcommand now contains several existing file + utilities. + - jj file show, replacing jj cat. + - jj file chmod replacing jj chmod. + - jj file list replacing jj files. + - New command jj branch move let you update branches by name + pattern or source revision. + - New diff option jj diff --name-only allows for easier shell + scripting. + - In color-words diffs, hunks are now highlighted with + underline. See diff colors and styles for customization. + - jj git push -c can now accept revsets that resolve to + multiple revisions. This means that jj git push -c xyz -c abc + is now equivalent to jj git push -c 'all:(xyz | abc)'. + - jj prev and jj next have gained a --conflict flag which moves + you to the next conflict in a child commit. + - New command jj git remote set-url that sets the url of a git + remote. + - Author timestamp is now reset when rewriting discardable + commits (empty commits with no description) if authored by + the current user. #2000 + - jj commit now accepts --reset-author option to match jj + describe. + - jj squash now accepts a --keep-emptied option to keep the + source commit. + * Fixed bugs + - jj git push now ignores immutable commits when checking + whether a to-be-pushed commit has conflicts, or has no + description / committer / author set. #3029 + - jj will look for divergent changes outside the short prefix + set even if it finds the change id inside the short prefix + set. #2476 + +------------------------------------------------------------------- +Fri Jun 7 20:02:25 UTC 2024 - Johannes Kastl + +- update to 0.18.0: + * Breaking changes + - Dropped support for ui.default-revset config (replaced by + revsets.log in 0.8.0). + - The commit_summary_no_branches template is superseded by + templates.branch_list. + - jj split will now refuse to split an empty commit. + - jj config list now uses multi-line strings and single-quoted + strings in the output when appropriate. + - jj config get/list/set now parse name argument as TOML key. + Quote meta characters as needed. Example: jj config get + "revset-aliases.'trunk()'" + - When updating the working copy away from an empty and + undescribed commit, it is now abandoned even if it is a merge + commit. + - If a new working-copy commit is created because the old one + was abandoned, and the old commit was merge, then the new + commit will now also be. #2859 + - jj new's --insert-before/--insert-after options must now be + set for each commit the new commit will be inserted + before/after. Previously, those options were global flags and + specifying them once would insert the new commit before/ + after all the specified commits. + * Deprecations + - Attempting to alias a built-in command now gives a warning, rather than being + silently ignored. + * New features + - jj branch list/tag list now accept -T/--template option. The + tag list prints commit summary along with the tag name by + default. + - Conflict markers now include an explanation of what each part + of the conflict represents. + - ui.color = "debug" prints active labels alongside the regular + colored output. + - jj branch track now show conflicts if there are some. + - A new revset reachable(srcs, domain) will return all commits + that are reachable from srcs within domain. + - There are now prebuilt binaries for + aarch64-linux-unknown-musl. Note, these are cross compiled + and currently untested. We plan on providing fully tested + builds later once our CI system allows it. + - Added new revsets mutable() and immutable(). + - Upgraded scm-record from v0.2.0 to v0.3.0. See release notes + at https://github.com/arxanas/scm-record/releases/tag/v0.3.0 + - New command jj fix that can be configured to update commits + by running code formatters (or similar tools) on changed + files. The configuration schema and flags are minimal for + now, with a number of improvements planned (for example, + #3800 and #3801). + - jj new's --insert-before and --insert-after options can now + be used simultaneously. + - jj git push now can push commits with empty descriptions with + the --allow-empty-description flag + * Fixed bugs + - Previously, jj git push only made sure that the branch is in + the expected location on the remote server when pushing a + branch forward (as opposed to sideways or backwards). Now, jj + git push makes a safety check in all cases and fails whenever + jj git fetch would have introduced a conflict. + In other words, previously branches that moved sideways or + backward were pushed similarly to Git's git push --force; now + they have protections similar to git push --force-with-lease + (though not identical to it, to match the behavior of jj git + fetch). Note also that because of the way jj git fetch works, + jj does not suffer from the same problems as Git's git push + --force-with-lease in situations when git fetch is run in the + background. + - When the working copy commit becomes immutable, a new one is + automatically created on top of it to avoid letting the user + edit the immutable one. + - jj config list now properly escapes TOML keys (#1322). + - Files with conflicts are now checked out as executable if all + sides of the conflict are executable. + - The progress bar (visible when using e.g. jj git clone) + clears the remainder of the cursor row after drawing rather + than clearing the entire row before drawing, eliminating the + "flicker" effect seen on some terminals. + +------------------------------------------------------------------- +Wed May 8 06:55:40 UTC 2024 - Gordon Leung + +- update to 0.17.1: + * jj status no longer scans through the entire history to look + for ancestors with conflicts. + +------------------------------------------------------------------- +Thu May 2 17:49:33 UTC 2024 - Johannes Kastl + +- update to 0.17.0: + * Breaking changes + - The default template aliases were replaced as follows: + builtin_op_log_root(op_id: OperationId) -> + format_root_operation(root: Operation) + builtin_log_root(change_id: ChangeId, commit_id: CommitId) -> + format_root_commit(root: Commit) + builtin_change_id_with_hidden_and_divergent_info -> + format_short_change_id_with_hidden_and_divergent_info(commit: Commit) + - The --revision option of jj rebase is renamed to --revisions. + The short alias -r is still supported. + * New features + - The list of conflicted paths is printed whenever the working + copy changes. + This can be disabled with the --quiet option. + - Commit objects in templates now have a mine() -> Boolean + method analog to the same function in revsets. It evaluates + to true if the email of the commit author matches the current + user.email. + - Commit objects in templates now have a contained_in(revset: + String) -> Boolean method. + - Operation objects in templates now have a snapshot() -> + Boolean method that evaluates to true if the operation was a + snapshot created by a non-mutating command (e.g. jj log). + - Revsets and templates now support single-quoted raw string + literals. + - A new config option ui.always-allow-large-revsets has been + added to allow large revsets expressions in some commands, + without the all: prefix. + - A new config option ui.allow-filesets has been added to + enable "fileset" expressions. Note that filesets are + currently experimental, but will be enabled by default in a + future release. + - A new global flag --ignore-immutable lets you rewrite + immutable commits. + - New command jj parallelize that rebases a set of revisions + into siblings. + - jj status now supports filtering by paths. For example, jj + status . will only list changed files that are descendants of + the current directory. + - jj prev and jj next now work when the working copy revision + is a merge. + - jj squash now accepts a --use-destination-message/-u option + that uses the description of the destination for the new + squashed revision and discards the descriptions of the source + revisions. + - You can check whether Watchman fsmonitor is enabled or + installed with the new jj debug watchman status command. + - jj rebase now accepts revsets resolving to multiple revisions + with the --revisions/-r option. + - jj rebase -r now accepts --insert-after and --insert-before + options to customize the location of the rebased revisions. + * Fixed bugs + - Revsets now support \-escapes in string literal. + - The builtin diff editor now allows empty files to be selected + during jj split. + - Fixed a bug with jj split introduced in 0.16.0 that caused it + to incorrectly rebase the children of the revision being + split if they had other parents (i.e. if the child was a + merge). + - The snapshot.max-new-file-size option can now handle raw + integer literals, interpreted as a number of bytes, where + previously it could only handle string literals. This means + that snapshot.max-new-file-size="1" and + snapshot.max-new-file-size=1 are now equivalent. + - jj squash is now a no-op if the path argument didn't + match any paths (it used to create new commits with bumped + timestamp). #3334 + +------------------------------------------------------------------- +Thu Apr 4 05:15:23 UTC 2024 - Johannes Kastl + +- update to 0.16.0: + * Deprecations + - jj move was deprecated in favor of jj squash. + * Breaking changes + - The git_head template keyword now returns an optional value + instead of a list of 0 or 1 element. + - The jj sparse set --edit/--reset flags were split up into jj + sparse edit/reset subcommands respectively. + - The jj sparse subcommands now parse and print patterns as + workspace-relative paths. + - The jj log command no longer uses the default revset when a + path is specified. + * New features + - Config now supports rgb hex colors (in the form #rrggbb) + wherever existing color names are supported. + - ui.default-command now accepts multiple string arguments, for + more complex default jj commands. + - Graph node symbols are now configurable via templates + * templates.log_node + * templates.op_log_node + - jj log now includes synthetic nodes in the graph where some + revisions were elided. + - jj squash now accepts --from and --into (also aliased as + --to) if -r is not specified. It can now be used for all use + cases where jj move could previously be used. The --from + argument accepts a revset that resolves to more than one + revision. + - Commit templates now support immutable keyword. + - New template function coalesce(content, ..) is added. + - Timestamps are now shown in local timezone and without + milliseconds and timezone offset by default. + - jj git push now prints messages from the remote. + - jj branch list now supports a --conflicted/-c option to show + only conflicted branches. + - jj duplicate and jj abandon can now take more than a single + -r argument, for consistency with other commands. + - jj branch list now allows combining -r REVISIONS/NAMES and -a + options. + - --all is now named --all-remotes for jj branch list + - There is a new global --quiet flag to silence commands' + non-primary output. + - jj split now supports a --siblings/-s option that splits the + target revision into siblings with the same parents and + children. + - new function working_copies() for revsets to show the working + copy commits of all workspaces. + * Fixed bugs + - None + +------------------------------------------------------------------- +Sat Mar 16 17:29:53 UTC 2024 - Johannes Kastl + +- update to 0.15.1: + * No code changes (fixing Rust Cargo.toml stuff). +- BuildRequire gnupg to fix failing tests + +------------------------------------------------------------------- +Sat Mar 16 17:09:19 UTC 2024 - Johannes Kastl + +- update to 0.15.0: + * Breaking changes + - The minimum supported Rust version (MSRV) is now 1.76.0. + - The on-disk index format changed. New index files will be + created automatically, but it can fail if the repository is + co-located and predates Git GC issues #815. If reindexing + failed, you'll need to clean up corrupted operation history + by jj op abandon ... + - Dropped support for the "legacy" graph-drawing style. Use + "ascii" for a very similar result. + - The default log output no longer lists all tagged heads. Set + revsets.log = "@ | ancestors(immutable_heads().., 2) | + heads(immutable_heads())" to restore the old behavior. + - Dropped support for the deprecated : revset operator. Use :: + instead. + - jj rebase --skip-empty no longer abandons commits that were + already empty before the rebase. + * New features + - Partial support for commit signing. Currently you can + configure jj to "keep" commit signatures by making new ones + for rewritten commits, and to sign new commits when they are + created. + This comes with out-of-the-box support for the following + backends: + — GnuPG + - SSH + - Signature verification and an explicit sign command will + hopefully come soon. + - Templates now support logical operators: ||, &&, ! + - Templates now support the self keyword, which is the current + commit in jj log/obslog templates. + - jj show now accepts -T/--template option to render its output + using template + - jj config list now accepts -T/--template option. + - jj git fetch now accepts -b as a shorthand for --branch, + making it more consistent with other commands that accept a + branch + - In the templating language, Timestamps now have a .local() + method for converting to the local timezone. + - jj next/prev now infer --edit when you're already editing a + non-head commit (a commit with children). + - A new built-in pager named :builtin is available on all + platforms, implemented with minus + - Set config ui.log-synthetic-elided-nodes = true to make jj + log include synthetic nodes in the graph where some revisions + were elided (#1252, #2971). This may become the default + depending on feedback. + - When creating a new workspace, the sparse patterns are now + copied over from the current workspace. + - jj git init --colocate can now import an existing Git + repository. This is equivalent to jj git init --git-repo=.. + - jj git fetch now automatically prints new remote branches and + tags by default. + - --verbose/-v is now --debug (no short option since it's not + intended to be used often) + - jj move --from/--to can now be abbreviated to jj move -f/-t + - jj commit/diffedit/move/resolve/split/squash/unsquash now + accept --tool= option to override the default. #2575 + - Added completions for Nushell to jj util completion + - jj branch list now supports a --tracked/-t option which can + be used to show tracked branches only. Omits local + Git-tracking branches by default. + - Commands producing diffs now accept a --context flag for the + number of lines of context to show. + - jj commands with the -T/--template option now provide a hint + containing defined template names when no argument is given, + assisting the user in making a selection. + * Fixed bugs + - On Windows, symlinks in the repo are now supported when + Developer Mode is enabled. When symlink support is + unavailable, they will be materialized as regular files in + the working copy (instead of resulting in a crash). #2 + - On Windows, the :builtin pager is now used by default, rather + than being disabled entirely. + - Auto-rebase now preserves the shape of history even for merge + commits where one parent is an ancestor of another. #2600 + +------------------------------------------------------------------- +Thu Feb 8 06:50:56 UTC 2024 - Johannes Kastl + +- update to 0.14.0: + * Deprecations + - jj checkout and jj merge are both deprecated; use jj new + instead to replace both of these commands in all instances. + Rationale: jj checkout and jj merge both implement identical + functionality, which is a subset of jj new. checkout creates + a new working copy commit on top of a single specified + revision, i.e. with one parent. merge creates a new working + copy commit on top of at least two specified revisions, i.e. + with two or more parents. + The only difference between these commands and jj new, which + also creates a new working copy commit, is that new can + create a working copy commit on top of any arbitrary number + of revisions, so it can handle both the previous cases at + once. The only actual difference between these three commands + is the command syntax and their name. These names were chosen + to be familiar to users of other version control systems, but + we instead encourage all users to adopt jj new instead; it is + more general and easier to remember than both of these. + jj checkout and jj merge will no longer be shown as part of + jj help, but will still function for now, emitting a warning + about their deprecation. + Deadline: jj checkout and jj merge will be deleted and are + expected become a hard error later in 2024. + - jj init --git and jj init --git-repo are now deprecated and + will be removed in the near future. Use jj git init instead. + * Breaking changes + - (Minor) Diff summaries (e.g. jj diff -s) now use D for + "Deleted" instead of R for "Removed". @joyously pointed out + that R could also mean "Renamed". + - jj util completion now takes the shell as a positional + argument, not a flag. the previous behavior is deprecated, + but supported for now. it will be removed in the future. + * New features + - jj util completion now supports powershell and elvish. + - Official binaries for macOS running on Apple Silicon + (aarch64-apple-darwin) are now available, alongside the + existing macOS x86 binaries. + - New jj op abandon command is added to clean up the operation + history. Git refs and commit objects can be further compacted + by jj util gc. + - jj util gc now removes unreachable operation, view, and Git + objects. + - jj branch rename will now warn if the renamed branch has a + remote branch, since those will have to be manually renamed + outside of jj. + - jj git push gained a --tracked option, to push all the + tracked branches. + - There's now a virtual root operation, similar to the virtual + root commit. It appears at the end of jj op log. + - jj config list gained a --include-overridden option to allow + printing overridden config values. + - jj config list now accepts --user or --repo option to specify + config origin. + - New jj config path command to print the config file path + without launching an editor. + - jj tag list command prints imported git tags. + - jj next and jj prev now prompt in the event of the + next/previous commit being ambiguous, instead of failing + outright. + - jj resolve now displays the file being resolved. + - jj workspace root was aliased to jj root, for ease of + discoverability + - jj diff no longer shows the contents of binary files. + - jj git now has an init command that initializes a git backed + repo. + - New template function surround(prefix, suffix, content) is + added. + * Fixed bugs + - Fixed snapshots of symlinks in gitignore-d directory. #2878 + - Fixed data loss in dirty working copy when checked-out branch + is rebased or abandoned by Git. #2876 + +------------------------------------------------------------------- +Sun Jan 7 15:42:43 UTC 2024 - Johannes Kastl + +- update to 0.13.0: + * Breaking changes + - `jj git fetch` no longer imports new remote branches as local + branches. Set `git.auto-local-branch = true` to restore the + old behavior. + * New features + - Information about new and resolved conflicts is now printed + by every command. + - `jj branch` has gained a new `rename` subcommand that allows + changing a branch name atomically. `jj branch help rename` + for details. + * Fixed bugs + - Command aliases can now be loaded from repository config + relative to the current working directory. + [#2414](https://github.com/martinvonz/jj/issues/2414) + +------------------------------------------------------------------- +Wed Dec 6 12:15:35 UTC 2023 - Johannes Kastl + +- update to 0.12.0: + * Breaking changes + - The remote_branches() revset no longer includes branches + exported to the Git repository (so called Git-tracking + branches.) + - jj branch set no longer creates a new branch. Use jj branch + create instead. + - jj init --git in an existing Git repository now errors and + exits rather than creating a second Git store. + * New features + - jj workspace add can now take multiple --revision arguments, + which will create a new workspace with its working-copy + commit on top of all the parents, as if you had run + jj new r1 r2 r3 .... + - You can now set git.abandon-unreachable-commits = false to + disable the usual behavior where commits that became + unreachable in the Git repo are abandoned (#2504). + - jj new gained a --no-edit option to prevent editing the newly + created commit. For example, jj new a b --no-edit -m Merge + creates a merge commit without affecting the working copy. + - jj rebase now takes the flag --skip-empty, which doesn't copy + over commits that would become empty after a rebase. + - There is a new jj util gc command for cleaning up the + repository storage. For now, it simply runs git gc on the + backing Git repo (when using the Git backend). + * Fixed bugs + - Fixed another file conflict resolution issue where jj status + would disagree with the actual file content. #2654 + +------------------------------------------------------------------- +Wed Nov 01 19:12:45 UTC 2023 - kastl@b1-systems.de + +- Update to version 0.11.0: + * Breaking changes + - Conflicts are now stored in a different way. Commits written + by a new jj binary will not be read correctly by older jj + binaries. The new model solves some performance problems with + the old model. For example, jj log should be noticeably + faster on large repos. You may need to create a new clone to + see the full speedup. + - The remote_branches() revset now includes branches exported + to the Git repository (so called Git-tracking branches.) Use + remote_branches(remote=exact:"origin") to query branches of + certain remote. + - Status messages are now printed to stderr. + - jj config set now interprets the value as TOML also if it's a + valid TOML array or table. For example, jj config set --user + 'aliases.n' '["new"]' + - Remote branches now have tracking or non-tracking flags. The + git.auto-local-branch setting is applied only to newly + fetched remote branches. Existing remote branches are + migrated as follows: + - If local branch exists, the corresponding remote branches + are considered tracking branches. + - Otherwise, the remote branches are non-tracking branches. + - If the deduced tracking flags are wrong, use jj branch + track/untrack commands to fix them up. + - See automatic local branch creation for details. + - Non-tracking remote branches aren't listed by default. Use jj + branch list --all to show all local and remote branches. + - It's not allowed to push branches if non-tracking remote + branches of the same name exist. + - Pushing deleted/moved branches no longer abandons the local + commits referenced by the remote branches. + - jj git fetch --branch now requires glob: prefix to expand * + in branch name. + * New features + - jj's stable release can now be installed with cargo binstall + jj-cli. + - jj workspace add now takes a --revision argument. + - jj workspace forget can now forget multiple workspaces at + once. + - branches()/remote_branches()/author()/committer()/description() + revsets now support glob matching. + - jj branch delete/forget/list, and jj git push --branch now + support string pattern syntax. The --glob option is + deprecated in favor of glob: pattern. + - The branches/tags/git_refs/git_head template keywords now + return a list of RefNames. They were previously pre-formatted + strings. + - The new template keywords local_branches/remote_branches are + added to show only local/remote branches. + - jj workspace add now preserves all parents of the old + working-copy commit instead of just the first one. + - jj rebase -r gained the ability to rebase a revision A onto a + descendant of A. + * Fixed bugs + - Updating the working copy to a commit where a file that's + currently ignored in the working copy no longer leads to a + crash (#976). + - Conflicts in executable files can now be resolved just like + conflicts in non-executable files (#1279). + - jj new --insert-before and --insert-after now respect + immutable revisions (#2468). + +------------------------------------------------------------------- +Mon Oct 9 15:49:09 UTC 2023 - Johannes Kastl + +- new package jujutsu: A Git-compatible DVCS that is both simple + and powerful diff --git a/jujutsu.obsinfo b/jujutsu.obsinfo new file mode 100644 index 0000000..0cbd263 --- /dev/null +++ b/jujutsu.obsinfo @@ -0,0 +1,4 @@ +name: jujutsu +version: 0.24.0 +mtime: 1733345204 +commit: 32d2a85539254e9d96f9819072fa5c6ac70dd1e4 diff --git a/jujutsu.spec b/jujutsu.spec new file mode 100644 index 0000000..ee4402e --- /dev/null +++ b/jujutsu.spec @@ -0,0 +1,137 @@ +# +# spec file for package jujutsu +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define binary_name jj + +Name: jujutsu +Version: 0.24.0 +Release: 0 +Summary: Git-compatible DVCS that is both simple and powerful +License: MIT +URL: https://github.com/martinvonz/jj +Source0: %{name}-%{version}.tar.gz +Source1: vendor.tar.zst +BuildRequires: cargo >= 1.76 +BuildRequires: cargo-packaging +BuildRequires: gnupg +BuildRequires: openssh-common +BuildRequires: openssl-devel +BuildRequires: zstd +# dependencies for completion subpackages +BuildRequires: bash-completion +BuildRequires: fish +BuildRequires: zsh + +# serde_bser fails to compile on s390x +# error[E0599]: no method named `put_f64_be` found for struct `Vec` in the current scope +ExcludeArch: s390x + +%description +Jujutsu is a Git-compatible DVCS. It combines features from Git (data model, +speed), Mercurial (anonymous branching, simple CLI free from "the index", +revsets, powerful history-rewriting), and Pijul/Darcs (first-class conflicts), +with features not found in most of them (working-copy-as-a-commit, undo +functionality, automatic rebase, safe replication via rsync, Dropbox, or +distributed file system). + +The command-line tool is called jj for now because it's easy to type and easy +to replace (rare in English). The project is called "Jujutsu" because it +matches "jj". + +Jujutsu is relatively young, with lots of work to still be done. If you have +any questions, or want to talk about future plans, please join us on Discord +Discord or start a GitHub Discussion; the developers monitor both channels. + +Important +Jujutsu is an experimental version control system. While Git compatibility is +stable, and most developers use it daily for all their needs, there may still +be work-in-progress features, suboptimal UX, and workflow gaps that make it +unusable for your particular use. + +%package -n %{name}-bash-completion +Summary: Bash Completion for %{name} +Group: System/Shells +Requires: %{name} = %{version} +Requires: bash-completion +Supplements: (%{name} and bash-completion) +BuildArch: noarch + +%description -n %{name}-bash-completion +Bash command line completion support for %{name}. + +%package -n %{name}-fish-completion +Summary: Fish Completion for %{name} +Group: System/Shells +Requires: %{name} = %{version} +Supplements: (%{name} and fish) +BuildArch: noarch + +%description -n %{name}-fish-completion +Fish command line completion support for %{name}. + +%package -n %{name}-zsh-completion +Summary: Zsh Completion for %{name} +Group: System/Shells +Requires: %{name} = %{version} +Supplements: (%{name} and zsh) +BuildArch: noarch + +%description -n %{name}-zsh-completion +zsh command line completion support for %{name}. + +%prep +%autosetup -p 1 -a 1 + +%build +%{cargo_build} + +%install +install -D -d -m 0755 %{buildroot}%{_bindir} +install -m 0755 %{_builddir}/%{name}-%{version}/target/release/%{binary_name} %{buildroot}%{_bindir}/%{binary_name} + +# create the bash completion file +mkdir -p %{buildroot}%{_datarootdir}/bash-completion/completions/ +%{buildroot}/%{_bindir}/%{binary_name} util completion bash > %{buildroot}%{_datarootdir}/bash-completion/completions/%{binary_name} + +# create the fish completion file +mkdir -p %{buildroot}%{_datarootdir}/fish/vendor_completions.d/ +%{buildroot}/%{_bindir}/%{binary_name} util completion fish > %{buildroot}%{_datarootdir}/fish/vendor_completions.d/%{binary_name}.fish + +# create the zsh completion file +mkdir -p %{buildroot}%{_datarootdir}/zsh/site-functions/ +%{buildroot}/%{_bindir}/%{binary_name} util completion zsh > %{buildroot}%{_datarootdir}/zsh/site-functions/_%{binary_name} + +%check +rm -rf tests/contest/ +%{cargo_test} + +%files +%doc README.md +%license LICENSE +%{_bindir}/%{binary_name} + +%files -n %{name}-bash-completion +%{_datarootdir}/bash-completion/completions/%{binary_name} + +%files -n %{name}-fish-completion +%{_datarootdir}/fish/vendor_completions.d/%{binary_name}.fish + +%files -n %{name}-zsh-completion +%{_datarootdir}/zsh/site-functions/_%{binary_name} + +%changelog diff --git a/vendor.tar.zst b/vendor.tar.zst new file mode 100644 index 0000000..7835a02 --- /dev/null +++ b/vendor.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3068059bbee5036e4da3d35d0bb70f8c953ba51e59db4942fdd7735855e82345 +size 40576381