I want to get started with Pijul but the test repository I wanted to do it on has not been able to migrate to pijul.
Some information.
[nix-shell:~/.tmp/qmpanel]$ git --version
git version 2.37.3
bash: fasd: command not found
[nix-shell:~/.tmp/qmpanel]$ pijul --version
pijul 1.0.0-beta.2
bash: fasd: command not found
[nix-shell:~/.tmp/qmpanel]$ bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
bash: fasd: command not found
Steps to reproduce:
git clone https://github.com/jlindgren90/qmpanel
I did in a pure nix shell (details later) but my suspicion is that this is a general problem.
pijul git. This creates a lot of *.ts extraneous files.
git clean -f (or rm -rf *.ts and then a git status) : Essentially verify that all the extraneous files are gone and the repo is now clean
pijul diff --short : Pijul feels like those *.ts files should actually be a part of our codebase.
Details of nix shell: nixpkgs is a fetchtarball with the parameters:
First, it looks like you have some unknown command fasd in your shell, although it seems unrelated.
I am on Ubuntu Studio 20.04. I tried the clone and then the pijul git command using version 2.25.1 of git and pijul 1.0.0-beta-2 with a patch that wasn’t in the crate (I forget what it was, but it’s on Zulip).
I’m pasting some of the console output below, because it shows that near the end of the git command, pijul reports errors for paths that are not in the repository. These files are then left there once the command stops.
I did git status at the end, and it says those files are extra.
I did pijul diff at the end, and it says that it crashed, with reference to a crash report.
ERROR While adding "plugin-mainmenu/actionview.cpp": Path not in repository: plugin-mainmenu/actionview.cpp
INFO Importing commit b95e1a5e3a7ce97bbbc76950f0357386cde9aa19: Release mouse after task button DND
Fixes https://github.com/lxqt/lxqt-panel/issues/1204
ERROR While adding "plugin-taskbar/lxqttaskbutton.cpp": Path not in repository: plugin-taskbar/lxqttaskbutton.cpp
INFO Importing commit d0c2fad6d7817fc53da9e6bd999a1dcd45d20e6c: Really remove the has-menu symbol from quicklaunch icons.
ERROR While adding "plugin-quicklaunch/quicklaunchbutton.cpp": Path not in repository: plugin-quicklaunch/quicklaunchbutton.cpp
INFO Importing commit 932cf0dfb592367f95bc6c29ec70be8329095834: Better text eliding and painting of task buttons
Since Qt 5.12, tool button texts are middle-elided. This patch restores right eliding by using a simpler and better way of painting and using the button as the paint device.
Closes https://github.com/lxqt/lxqt-panel/issues/1162
ERROR While adding "plugin-taskbar/lxqttaskbutton.cpp": Path not in repository: plugin-taskbar/lxqttaskbutton.cpp
INFO Importing commit 2208cca7be00f8023fe0bfe27715d55fb54ae382: mainmenu: Clear search edit on hide, rather than on show.
…
ERROR While adding "plugin-taskbar/lxqtgrouppopup.cpp": Path not in repository: plugin-taskbar/lxqtgrouppopup.cpp
INFO Importing commit 94977f1d1696efccc9df8a8191b58c50d4b0d446: Fix object parent hierarchy
ERROR While adding "panel/plugin.h": Path not in repository: panel/plugin.h
INFO Importing commit 194c68e816714cb3bd6e19dee50f3c8a3a68885e: Remove extra files
INFO Importing commit 8aae8337afe4a3a45f08409102ec918f07bb03aa: Consolidate LXQtQuickLaunch class
ERROR While adding "panel/lxqtpanel.cpp": Path not in repository: panel/lxqtpanel.cpp
INFO Importing commit 8c84eba5a0de1f272f2f284a59bee6833cef068d: Cleanups, mostly cosmetic
ERROR While adding "panel/lxqtpanel.cpp": Path not in repository: panel/lxqtpanel.cpp
INFO Importing commit 42ed5581056c0b36f5cd05142d8305c2c6c906b0: Fix geometry calculation
ERROR While adding "panel/lxqtpanel.cpp": Path not in repository: panel/lxqtpanel.cpp
INFO Importing commit 97b6bf9f4fb86b2a19ab990a46a084d9335dd1dd: Remove LXQtPanelApplication
INFO Importing commit a3a1c56cb6ad0f75e787429e5a3370f836cf0220: Remove main menu weirdness
INFO Importing commit 855d87277fa8878422d78e238e2b3cd92ea2bd48: mainmenu: Make some options mandatory
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit 61b7590e48aca107986eba30ec698b2a964ba5f7: Various cleanups
ERROR While adding "panel/lxqtpanel.cpp": Path not in repository: panel/lxqtpanel.cpp
INFO Importing commit cb75e23758d52016ba9de9e2a6614e8a0d428f44: Subclass XdgMenuWidget and remove event filter
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit bdf12ba2a7df5a2ac8bda30a733b19f98bff464c: Separate function implementations
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit 734d75d67d6943e2f1909824a7baa5d8ac7bc2b8: More main menu refactoring
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit c47f65bcc431f544f43ceba9b14fd5286a4abfc1: Style fixes
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit 8063c03df09e7dac03928ff7b82001564750a04d: Minor cleanup
ERROR While adding "plugin-mainmenu/lxqtmainmenu.cpp": Path not in repository: plugin-mainmenu/lxqtmainmenu.cpp
INFO Importing commit c623566802b3f525e75b4e6536537c8a5d4b395f: Visual tweaks
ERROR While adding "plugin-mainmenu/actionview.cpp": Path not in repository: plugin-mainmenu/actionview.cpp
INFO Importing commit c2e7ab001a4cd132f2b98506a1c3bf6b7797ae75: Fix build with LXQt 0.15
For the other issues, I have projects to improve our Git import, allowed by recent improvements in the Libpijul API. I’ll keep you posted. That command is feature-gated btw, I wrote it primarily for testing purposes.
On second thoughts, what is the most authoritative version right now. @joyously helpfully mentions that there is a patch not on nest but only on zulip and I see 3 changes yesterday on nest, is everything on nest latest now?
Yay! I got the update and built pijul. I reran this test (clone and import) and there were no errors.
A git status shows only the .pijul folder and the .ignore file.
A pijul diff command shows nothing.
A pijul log shows lots of stuff.
I can’t tell if it ran faster, because I had started another import before I started this one, so they were running at the same time (and the fan on my laptop stayed on).
What’s left is for the import to happen in the current folder instead of the folder passed as an argument.
Also, I tried one which listed the uncommitted files and “Error: There were uncommitted files”, yet the command still created a .pijul folder and a .ignore file, which does not seem like the correct outcome.
You can clone the pijul repository from the Nest and build it.
I already had one, but the command is pijul clone https://nest.pijul.com/pijul/pijul
(I used pijul pull on my existing repo.)
I used this build command cargo build --release --all-features
but that made some debug artifacts. There is likely an option to get just the git feature, but I’m not sure what it is.
Then install it or simply execute the built pijul.
The thread at Zulip shows how long my test ran, but I see there is a fix to test for that.
I’m not sure if this is related, but I’m seeing some of the same errors:
ERROR While adding “src/dk/some/project/assets.clj”: Path not in repository: src/dk/some/project/assets.clj
Basically every file for every commit in my git repo shows the same error, and in the end I have an empty pijul repo alongside the (untouched) git repo.
The output from pijul -V:
pijul 1.0.0-beta.2
If I then run pijul git from the same directory again, it crashes with this report:
name = 'pijul'
operating_system = 'unix:Ubuntu'
crate_version = '1.0.0-beta.2'
explanation = '''
Panic occurred in file '/home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/pijul-1.0.0-beta.2/src/commands/git.rs' at line 261
'''
cause = 'called `Option::unwrap()` on a `None` value'
method = 'Panic'
backtrace = '''
0: 0x55f14657872d - core::panicking::panic::h341545107301821d
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/panicking.rs:111
1: 0x55f146887d68 - pijul::commands::git::import::h45e3c7ac5ceb2583
2: 0x55f146880d1e - pijul::commands::git::Git::run::h74547fd81e5ae21a
3: 0x55f1468fecda - pijul::run::{{closure}}::h049fe3f54a0ee84a
4: 0x55f1468b048c - tokio::runtime::park::CachedParkThread::block_on::h15076e65060a0129
5: 0x55f14667d5e9 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::h5fe22eaf74d163ad
6: 0x55f1465e4960 - tokio::runtime::runtime::Runtime::block_on::hed245ce257f70f62
7: 0x55f1467b5a1f - pijul::main::hc25dfe71fd242198
8: 0x55f146670983 - std::sys_common::backtrace::__rust_begin_short_backtrace::hcf4d8c8deeb2f93a
9: 0x55f1465bf759 - std::rt::lang_start::{{closure}}::h5aabf4428ee56502
10: 0x55f146eddfec - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h9ab31282e87f134a
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/core/src/ops/function.rs:606
- std::panicking::try::do_call::h42ddf5b01d0b4bc7
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:483
- std::panicking::try::hfb70320d7386c61a
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:447
- std::panic::catch_unwind::h978c9edbad2bb4d4
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panic.rs:137
- std::rt::lang_start_internal::{{closure}}::h04ede5bd2f26b553
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/rt.rs:148
- std::panicking::try::do_call::ha6b9da35a0885c93
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:483
- std::panicking::try::h3325520cab3a642e
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panicking.rs:447
- std::panic::catch_unwind::h160beec6f047175b
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/panic.rs:137
- std::rt::lang_start_internal::h79190e3a877a769d
at /rustc/fc594f15669680fa70d255faec3ca3fb507c3405/library/std/src/rt.rs:148
11: 0x55f1467b5b85 - main
12: 0x7f42c0c0ed90 - __libc_start_call_main
at ./csu/../sysdeps/nptl/libc_start_call_main.h:58
13: 0x7f42c0c0ee40 - __libc_start_main_impl
at ./csu/../csu/libc-start.c:392
14: 0x55f146578c75 - _start
15: 0x0 - <unresolved>'''
Again, not sure if this is even related to this, or if I am just “holding it wrong”.
Fun fact: I dug around in the pijul sources, and in the git.rs file the line &repo.repo.working_copy is commented out and a &Commit { r: git, c: git.find_commit(*child)?, pref: prefstr, } is inserted instead. I don’t know rust, but replacing the &Commit ... line by the &repo... line makes the git repo import at least not fail.
There might be other problems (that some of you are maybe aware of?) with the git import, as the import doesn’t catch all the git commits.
Also, I fixed a large number of bugs in the last few days, my recent activity on Pijul has been a bit irregular, as I’m also bootstrapping an unrelated company in parallel.
I’m afraid not. I was just experimenting with the code to see what would happen if I poked at it a bit.
Also, it occurs to me that I am likely not comparing apples to apples, as the code where I changed the line was from the main channel, whereas the failure was from the beta.2 release.
I will try to make a minimal example when I have some time. Is it relevant to see it fail with the beta.2 release on cargo, or does it only make sense with the code at the head of main?