Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

worktree checkout for clone and gix integration #555

Merged
merged 153 commits into from
Nov 2, 2022
Merged
Changes from 1 commit
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
7496295
update README
Byron Oct 10, 2022
9145a32
sketch checkout API and refactor
Byron Oct 11, 2022
e39a9d5
finish sketch of `fetch_and_checkout()`
Byron Oct 11, 2022
09d767a
update with various configuration variables relevant to checking out …
Byron Oct 11, 2022
a88d5a3
sketch of method to checkout the main worktree
Byron Oct 11, 2022
34b3e03
fix docs
Byron Oct 11, 2022
11d636c
realize that we don't know hot to set HEAD correctly just yet
Byron Oct 12, 2022
d91bbcc
Make a clearer note of the obvious deviation due to lack of storing p…
Byron Oct 12, 2022
6225f35
Mark the upcoming usage of init.defaultBranch.
Byron Oct 12, 2022
0b5c53e
feat: `open::Options::config_overrides()` for early configuration; su…
Byron Oct 12, 2022
992522a
refactor (#450)
Byron Oct 12, 2022
4d6d7bb
update `init.defaultBranch` - now used by custom initialization. (#450)
Byron Oct 12, 2022
e5aeb6e
update crate status (#450)
Byron Oct 12, 2022
c6e7663
thanks clippy
Byron Oct 12, 2022
a9d1449
feat: `remote::fetch::Prepare::handshake_outcome()` to obtain server …
Byron Oct 13, 2022
36c5ca9
refactor (#450)
Byron Oct 13, 2022
4b5d6df
fix: `client::Capabilities` lifetimes now point to `'a` instead of `'…
Byron Oct 13, 2022
ebfd7d6
a sketch to check and update the object format upon cloning. (#450)
Byron Oct 13, 2022
54c91eb
prepare for handling the server object-format correctly. (#450)
Byron Oct 13, 2022
6ac6580
thanks clippy
Byron Oct 13, 2022
21b21b6
feat: add `RefSpecRef::expand_prefix()` method to avoid missing prefi…
Byron Oct 13, 2022
275e80f
fix: ref-map filtering now uses correct prefixes. (#450)
Byron Oct 13, 2022
9d0f31e
fix docs (#450)
Byron Oct 13, 2022
d53ddcd
fix: `HEAD` may now return itself as prefix in `RefSpecRef::prefix()`…
Byron Oct 14, 2022
306ebef
improve docs slightly (#450)
Byron Oct 14, 2022
e561021
also update the HEAD reference after a fetch (#450)
Byron Oct 14, 2022
9076ce3
feat: `fs::Snapshot` can `Clone` if `T` can `Clone`. (#450)
Byron Oct 14, 2022
458e1bc
feat: Clnoe for `File` (#450)
Byron Oct 14, 2022
e462bd5
prepare checkout, but needs to be able to create an index from a tree…
Byron Oct 14, 2022
de4fe06
Merge branch 'main' into gix-clone
Byron Oct 14, 2022
485a252
write index from root tree and get ready for checkout (#450)
Byron Oct 14, 2022
dd3b336
refactor (#450)
Byron Oct 14, 2022
d10a82e
plan more core filesystem attributes (#450)
Byron Oct 14, 2022
d947d8b
obtain worker count from configuration; prep for more options (#450)
Byron Oct 14, 2022
ad96233
thanks clippy
Byron Oct 14, 2022
ef06f56
fix typ
Byron Oct 15, 2022
8b9fbd4
feat: Use `core.askpass` when building the credential helper. (#450)
Byron Oct 15, 2022
0e9bd41
inform about even more keys in `gix progress` (#450)
Byron Oct 15, 2022
e731757
prepare to move checkout_options into `config` (#450)
Byron Oct 15, 2022
91b360f
collect all filesystem attributes affecting checkout (#450)
Byron Oct 15, 2022
de13c66
update progress based on filesystem config usage (#450)
Byron Oct 15, 2022
3df7788
don't be lenient towards paths that can't be interpolated in case of …
Byron Oct 15, 2022
2f1c9dc
refactor (#450)
Byron Oct 15, 2022
1ef704e
improved working of docs
Byron Oct 15, 2022
8b2aba1
update usage of `core.checkState` (#450)
Byron Oct 15, 2022
05a666c
read core.checkstat to configure the checkout as well (#450)
Byron Oct 15, 2022
f22bdc0
thanks clippy
Byron Oct 15, 2022
28de9df
refactor (#450)
Byron Oct 15, 2022
0081e2f
sketch access to the attributes file, realize that there is an issue …
Byron Oct 15, 2022
5c11b84
fix: build correct path for `$HOME/.config/…` files. (#450)
Byron Oct 15, 2022
f5e2eeb
prepare attribute-group setup as far as possible. (#450)
Byron Oct 15, 2022
73b6ec0
thanks clippy
Byron Oct 15, 2022
3821b4f
finally perform actual checkout, but test fails without clear reason …
Byron Oct 15, 2022
9ce28ac
the first working checkout as per simple simple test (#450)
Byron Oct 15, 2022
63947ae
progress totals (planned, devitaion) (#450)
Byron Oct 15, 2022
23a5e8b
first rough sketch of `gix clone` (#450)
Byron Oct 17, 2022
91baefa
fix: `init_bare()` now creates the destination directory if it doesn'…
Byron Oct 17, 2022
700cc2d
thanks clippy
Byron Oct 17, 2022
bc991ff
Make it possible to ignore specs that don't match when iterating mapp…
Byron Oct 17, 2022
bc5e3e4
assure the reflog settings aren't permanently overidden during init/f…
Byron Oct 17, 2022
f869b22
fix: don't allow non-bare repositories to be initialized into non-emp…
Byron Oct 17, 2022
a0655dc
upgrade to `prodash` v21 (#450)
Byron Oct 17, 2022
9a476df
reduce verbosity of `clone` and print once entire clone is done (#450)
Byron Oct 17, 2022
ae3ced2
fix async build (#450)
Byron Oct 17, 2022
b593806
less noisy way of writing trait bounds (#450)
Byron Oct 17, 2022
041ede9
refactor (#450)
Byron Oct 17, 2022
2bece79
fix!: `create::into(…)` takes `create::Kind` to determine if it's bar…
Byron Oct 17, 2022
b3691b2
a revelation on what makes `Options` and `Context` truly different. (…
Byron Oct 17, 2022
d2ebe34
adjust to changes in `git-repository` (#450)
Byron Oct 17, 2022
6f8356c
thanks clippy
Byron Oct 17, 2022
056f4dd
avoid showing thread progress during clone-pack-resolution (#450)
Byron Oct 17, 2022
2ef8d53
checkout returns index checkout result (#450)
Byron Oct 17, 2022
91798ae
inform about conflicts after checking out a clone (#450)
Byron Oct 17, 2022
3a05328
fix: collect `stderr` and print it afterwards to avoid intersection w…
Byron Oct 17, 2022
c8ef759
apply configuration overrides to newborn repo during clone (#450)
Byron Oct 17, 2022
3b48317
Merge branch 'main' into gix-clone
Byron Oct 18, 2022
0aa97fe
test for cloning empty repositories (#450)
Byron Oct 18, 2022
d29bb62
refactor (#450)
Byron Oct 18, 2022
e97eeda
make it possible to clone empty remote repositories (#450)
Byron Oct 18, 2022
01f2574
feat: add `Url::canonicalized()` and `Url::canonicalize()`. (#450)
Byron Oct 19, 2022
5d7a055
assure stored file urls are absolute (#450)
Byron Oct 19, 2022
1c3dd3a
validate that the remote HEAD branch overrides local init.defaultBran…
Byron Oct 19, 2022
372e9d4
re-apply overrides more correctly after clone, however… (#450)
Byron Oct 19, 2022
ff06de4
allow to re-read the logallrefupdates config after overrides (#450)
Byron Oct 19, 2022
bc5b4e7
Fully reload in-memory configuration after configuration changes… (#450)
Byron Oct 19, 2022
7d92c61
fix: `file::SectionMut::push()` now properly creates empty values. (#…
Byron Oct 19, 2022
21a5229
be sure to globally order section ids when traversed by name. (#450)
Byron Oct 19, 2022
839f776
fix: `File::boolean()` now correctly handles implicit bools across se…
Byron Oct 19, 2022
072f5bc
feat: Query of `core.logAllRefUpdates` is now fallible. (#450)
Byron Oct 19, 2022
3cfe13d
canonicalize URL right away for it to manifest in the changelog (#450)
Byron Oct 19, 2022
d2f56df
thanks clippy
Byron Oct 19, 2022
1e7fd4e
the first test to prove that HEAD reflogs are correct (#450)
Byron Oct 19, 2022
c25cb00
show that HEAD's referent also has the correct reflog (#450)
Byron Oct 19, 2022
ff4412e
proper reflog entries for all other updated refs during cloning (#450)
Byron Oct 19, 2022
af0c28d
refactor (#450)
Byron Oct 19, 2022
911f68f
improve docs for `Instruction` (#450)
Byron Oct 20, 2022
64f81d7
Merge branch 'main' into gix-clone
Byron Oct 27, 2022
fa27570
Merge branch 'main' into gix-clone
Byron Oct 28, 2022
381924c
adjust docs
Byron Oct 28, 2022
b1edb9e
feat: diff algorithm is controlled by git configuration `diff.algorithm`
Byron Oct 28, 2022
fc26e4c
adjust to changes in `git-repository` (#450)
Byron Oct 28, 2022
b39ca20
update crate status to reflect the usage of `imara-diff`
Byron Oct 28, 2022
f362ab2
initial support for obtaining the `diff.algorithm` lazily (#450)
Byron Oct 28, 2022
71f15fc
change!: be specific about the kind of `diff::Error`, moving it to `d…
Byron Oct 28, 2022
71c6a20
refactor (#450)
Byron Oct 28, 2022
6fe93c2
Use correct diff algorithm when diffing text (#450)
Byron Oct 28, 2022
30d32e7
update progress as we now respect `diff.algorithm` (#450)
Byron Oct 28, 2022
767fb7b
thanks clippy (#450)
Byron Oct 28, 2022
971fe0c
fix build and docs
Byron Oct 28, 2022
91bf67a
Merge branch 'main' into gix-clone
Byron Oct 31, 2022
2f649e9
failing test to check for presence of remote HEAD (#450)
Byron Oct 31, 2022
61cd430
first step towards supporting writing of symbolic refs locally (#450)
Byron Oct 31, 2022
376829a
finally figure out how symbolic ref updates should work (#450)
Byron Oct 31, 2022
e973dfe
feat: `gix remote ref-map --show-unmapped-remote-refs`. (#450)
Byron Oct 31, 2022
3495c56
thanks clippy
Byron Oct 31, 2022
86a18bd
figure out more details on how to handle symbolic refs just enough (#…
Byron Oct 31, 2022
2330305
the first successful test showing that we can write symbolic refs (#450)
Byron Oct 31, 2022
a70a6aa
and show that we don't manage to write the reflog for some reason (#450)
Byron Oct 31, 2022
3e4c0cb
assure that inital refs are placed into the correct spot (#450)
Byron Oct 31, 2022
6e5c0ae
fix: allow symref updates to receive reflogs if these are new… (#450)
Byron Oct 31, 2022
669249a
adjust to changes in `git-ref` (#450)
Byron Oct 31, 2022
8b5cf38
add test to validate new symref reflog behaviour (#450)
Byron Oct 31, 2022
3eaedda
thanks clippy
Byron Oct 31, 2022
d06900d
sort out last test-case to assure setting symbolic refs is safe (#450)
Byron Nov 1, 2022
58cc01a
failing test to show we don't pack refs yet (#450)
Byron Nov 1, 2022
2c9edff
use `tempfile` via `git-testools` (#450)
Byron Nov 1, 2022
728f688
refactor (#450)
Byron Nov 1, 2022
328900a
fix!: support for non-'static PackedRefs transactions. (#450)
Byron Nov 1, 2022
a9a621e
auto-pack references when creating them during clone (#450)
Byron Nov 1, 2022
b62d5b4
definitely write all non-symbolic refs into packed-refs (#450)
Byron Nov 1, 2022
7bd5263
refactor (#450)
Byron Nov 1, 2022
443a75a
keep track of several branch related keys (#450)
Byron Nov 1, 2022
c788b51
update docs (#450)
Byron Nov 1, 2022
07efbce
failing test for us setting up remote information after cloning (#450)
Byron Nov 1, 2022
449ff06
change!: `Repository::branch_remote_name()` returns `reference::remot…
Byron Nov 1, 2022
b219033
fix: support for proper identification of '.' remote paths in
Byron Nov 1, 2022
02e37f0
feat!: Support for `unborn` ls-refs capability if server supports it.…
Byron Nov 1, 2022
547e450
prepare test for handling the 'unborn' lsrefs extension (#450)
Byron Nov 1, 2022
bc9c780
thanks clippy
Byron Nov 1, 2022
ffefe88
adjust to changes in `git-protocol` (#450)
Byron Nov 1, 2022
7086101
Assure the 'file' protocol is always allowed
Byron Nov 2, 2022
cd867ad
change!: `fetch::Ref::unpack()` returns `Option<oid>`. (#450)
Byron Nov 2, 2022
179ccd7
adapt to changes in `git-protocol` (#450)
Byron Nov 2, 2022
64db0b2
adapt to changes in `git-protocol` (#450)
Byron Nov 2, 2022
619fd61
Support unborn remotes and pick up their default branch name. (#450)
Byron Nov 2, 2022
f1b5570
Don't deviate by creating strange reflogs (with null-source & null-de…
Byron Nov 2, 2022
42c977f
don't degenerate information about the unborn fetch ref's path. (#450)
Byron Nov 2, 2022
d61eb2c
adapt to changes in `git-protocol` (#450)
Byron Nov 2, 2022
f409e4a
adapt to changes in `git-protocol` (#450)
Byron Nov 2, 2022
4dd67db
refactor (#450)
Byron Nov 2, 2022
e2a5714
initail implementation of writing branch tracking information (#450)
Byron Nov 2, 2022
f5155e0
fix build (#450)
Byron Nov 2, 2022
3890f1a
make last test work to allow us to clone properly (#450)
Byron Nov 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Make a clearer note of the obvious deviation due to lack of storing p…
…asswords
Byron committed Oct 12, 2022

Verified

This commit was signed with the committer’s verified signature.
Byron Sebastian Thiel
commit d91bbcc14b34166c79bba6faafd4395d6a571477
2 changes: 0 additions & 2 deletions crate-status.md
Original file line number Diff line number Diff line change
@@ -143,8 +143,6 @@ Check out the [performance discussion][git-traverse-performance] as well.
* [x] convert URL to string
* [x] API documentation
* [ ] Some examples
- **deviation**
* URLs may not contain passwords, which cannot be represent here and if present, will be ignored.

### git-protocol
* _abstract over protocol versions to allow delegates to deal only with a single way of doing things_
2 changes: 2 additions & 0 deletions git-url/src/lib.rs
Original file line number Diff line number Diff line change
@@ -28,6 +28,8 @@ pub use scheme::Scheme;
/// Additionally there is support for [deserialization][Url::from_bytes()] and serialization
/// (_see the `Display::fmt()` implementation_).
///
/// # Deviation
///
/// Note that we do not support passing the password using the URL as it's likely leading to accidents.
#[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]
#[cfg_attr(feature = "serde1", derive(serde::Serialize, serde::Deserialize))]