Skip to content

Commit

Permalink
vcs: add Jujutsu support
Browse files Browse the repository at this point in the history
  • Loading branch information
daehyeok authored and bbatsov committed Jan 21, 2024
1 parent eb6b681 commit 1df5ccf
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

* [#1870](https://github.com/bbatsov/projectile/pull/1870): Add package command for CMake projects.
* [#1875](https://github.com/bbatsov/projectile/pull/1875): Add support for Sapling VCS.
* [#1876](https://github.com/bbatsov/projectile/pull/1876): Add support for Jujutsu VCS.

## 2.8.0 (2023-10-13)

Expand Down
2 changes: 1 addition & 1 deletion doc/modules/ROOT/pages/faq.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ automatically used when appropriate to improve performance.

Inside version control repositories, VC tools are used when installed
to list files more efficiently. The supported tools include git, hg,
fossil, bzr, darcs, pijul, svn, and sapling.
fossil, bzr, darcs, pijul, svn, sapling and jujutsu.

Outside version control repositories, file search tools are used when
installed for a faster search than pure Elisp. The supported tools
Expand Down
1 change: 1 addition & 0 deletions doc/modules/ROOT/pages/projects.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ a project. Out of the box Projectile supports:
* Fossil
* Darcs
* Sapling
* Jujutsu

=== File markers

Expand Down
2 changes: 1 addition & 1 deletion doc/modules/ROOT/pages/usage.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ automatically used when appropriate to improve performance.

Inside version control repositories, VC tools are used when installed
to list files more efficiently. The supported tools include git, hg,
fossil, bzr, darcs, pijul, svn, and sapling.
fossil, bzr, darcs, pijul, svn, sapling and jujutsu.

Outside version control repositories, file search tools are used when
installed for a faster search than pure Elisp. The supported tools
Expand Down
13 changes: 12 additions & 1 deletion projectile.el
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ See `projectile-register-project-type'."
"_darcs" ; Darcs VCS root dir
".pijul" ; Pijul VCS root dir
".sl" ; Sapling VCS root dir
".jj" ; Jujutsu VCS root dir
)
"A list of files considered to mark the root of a project.
The bottommost (parentmost) match has precedence."
Expand Down Expand Up @@ -426,7 +427,8 @@ is set to `alien'."
"^\\.ccls-cache$"
"^\\.cache$"
"^\\.clangd$"
"^\\.sl$")
"^\\.sl$"
"^\\.jj$")
"A list of directories globally ignored by projectile.
Regular expressions can be used.
Expand Down Expand Up @@ -725,6 +727,12 @@ Set to nil to disable listing submodules contents."
:group 'projectile
:type 'string)

(defcustom projectile-jj-command "jj files --no-pager ."
"Command used by projectile to get the files in a Jujutsu project."
:group 'projectile
:type 'string
:package-version '(projectile . "2.9.0"))

(defcustom projectile-sapling-command "sl locate -0 -I ."
"Command used by projectile to get the files in a Sapling project."
:group 'projectile
Expand Down Expand Up @@ -1469,6 +1477,7 @@ Fallback to a generic command when not in a VCS-controlled project."
('pijul projectile-pijul-command)
('svn projectile-svn-command)
('sapling projectile-sapling-command)
('jj projectile-jj-command)
(_ projectile-generic-command)))

(defun projectile-get-sub-projects-command (vcs)
Expand Down Expand Up @@ -3659,6 +3668,7 @@ the variable `projectile-project-root'."
((projectile-file-exists-p (expand-file-name ".pijul" project-root)) 'pijul)
((projectile-file-exists-p (expand-file-name ".svn" project-root)) 'svn)
((projectile-file-exists-p (expand-file-name ".sl" project-root)) 'sapling)
((projectile-file-exists-p (expand-file-name ".jj" project-root)) 'jj)
;; then we check if there's a VCS marker up the directory tree
;; that covers the case when a project is part of a multi-project repository
;; in those cases you can still the VCS to get a list of files for
Expand All @@ -3672,6 +3682,7 @@ the variable `projectile-project-root'."
((projectile-locate-dominating-file project-root ".pijul") 'pijul)
((projectile-locate-dominating-file project-root ".svn") 'svn)
((projectile-locate-dominating-file project-root ".sl") 'sapling)
((projectile-locate-dominating-file project-root ".jj") 'jj)
(t 'none)))

(defun projectile--test-name-for-impl-name (impl-file-path)
Expand Down

0 comments on commit 1df5ccf

Please sign in to comment.