git-pijul
update pijul from git.
install
pip install git-pijul
usage
Usage: git-pijul [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
create Create a new pijul repository and import a linear...
plot Display current changes as graphviz file (git pijul...
set-diff Difference between two sets of changes of channels.
set-intersection Intersection between two sets of changes of channels.
set-union Union changes of channels.
shallow create a new pijul repository from the current...
update Update a repository created with git-pijul
git-pijul create finds an ancestry-path with git rev-list --ancestry-path --no-merges --topo-order. It will then checkout each revision into a temp
directory and add it to pijul. Non-linear history is dropped. The last
revision/patchset will be forked into a channel.
git-pijul update finds in git the shortest path from the current git-revision
to a existing channel and updates pijul from that channel.
git-pijul shallow create a new pijul repository from the current revision without
history.
git-pijul plot plots dependencies of all changes, with -i you can exclude changes from a
channel, usually the main channel that contains published changes. This allows
you to select the changes you want to publish.
There are also set opertions on sets of changes in channels. Typical usage is
applying changes after a git pijul update:
git pijul set-diff -l work_9189af5 | xargs pijul apply
example
$> git clone https://github.com/ganwell/git-pijul
Cloning into 'git-pijul'...
remote: Enumerating objects: .....
$> cd git-pijul
$> git pijul create --name upsteam01
Using head: e75db07f2b56b1a836f3841808b188ea8e642ba1 (HEAD)
Using base: b215e32b5d60eb19a0676a2b9072ac7a352e1c50 ('--root')
100%|█████████████████████████████████████| 40/40 [00:03<00:00, 12.40it/s]
Please do not modify the in_* channels
To get the latest changes call:
git pijul set-diff -l upstream01 | xargs pijul apply
$> git pijul set-diff -l upstream01 | xargs pijul apply
Outputting repository ↖
$> pijul channel
in_e75db07f2b56b1a836f3841808b188ea8e642ba1
* main
upstream01
$> git pull
Updating 3bc7b1e..7ec741d
Fast-forward
README.md | 2 +-
git_pijul.py | 50 ++++++++++++++++++++++++++++++++++++++------------
pyproject.toml | 2 +-
3 files changed, 40 insertions(+), 14 deletions(-)
$> git pijul update --name upstream02
Using head: 2386120d310e65ea38110059fc427c106a75a58a (master)
Using base from previous update: e75db07f2b56b1a836f3841808b188ea8e642ba1
100%|█████████████████████████████████████| 7/7 [00:00<00:00, 7.62it/s]
Please do not modify the in_* channels
To get the latest changes call:
git pijul set-diff -l upstream02 | xargs pijul apply
$> git pijul set-diff -l upstream02 | xargs pijul apply
Outputting repository ↖
$> pijul channel
in_e75db07f2b56b1a836f3841808b188ea8e642ba1
in_2386120d310e65ea38110059fc427c106a75a58a
* main
upstream01
upstream02
From 0.9.0 on you can also use:
git pijul apply upstream02
changes
0.3.0
- 0.3.0 git-pijul now creates a work and an internal channel. The internal channel should not be used by the user. I think this is the first step to allow back-sync.
0.4.0
- stop using .ignore, instead add root directory items one by one, ignoring .git
0.5.0
- allow to plot changes with
git pijul plot | dot -Txlib
0.6.0
git-pijul plotplots dependencies of all changes, with-iyou can exclude changes from a channel, usually themainchannel that contains published changes. This allows you to select the changes you want to publish.
0.7.0
- add set operations on changes in channels
0.8.0
- do not switch channels, use --channel for all operations
0.9.0
- add command to apply changes from channel iteratively
Metadata
Release files for git-pijul 0.9.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| git-pijul-0.9.2.tar.gz | 19.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| git_pijul-0.9.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.1 kB
Release files / git-pijul-0.9.2.tar.gz
| Download URL | git-pijul-0.9.2.tar.gz |
|---|---|
| Size | 19.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75f7b4c7dba054d04fd97490a73e69fb7db38defe80491888d7932e9ac3e1c11
|
|
BLAKE2b-256 checksum How to use checksums |
e6f47be5b702e02621541e065587a044fe5cedf997d7ebd9ed9cc3857b242373
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.7 CPython/3.9.6 Linux/5.10.53-1-MANJARO
|
Release files / git_pijul-0.9.2-py3-none-any.whl
| Download URL | git_pijul-0.9.2-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
76c12d05d7135a3ea6244bd7d288b00bf37e22240810897e5c740fc1f1fb2d37
|
|
BLAKE2b-256 checksum How to use checksums |
f157d6f42c7a7522288780b5af97107e74dd5d83210730d3dfdfd826205e9453
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.7 CPython/3.9.6 Linux/5.10.53-1-MANJARO
|
Security for git-pijul 0.9.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.