diff options
| author | Mica White <botahamec@outlook.com> | 2026-03-30 20:27:33 -0400 |
|---|---|---|
| committer | Mica White <botahamec@outlook.com> | 2026-03-30 20:27:33 -0400 |
| commit | ee630350d3c0c28a561b166381d5b75ea8bf209a (patch) | |
| tree | bab2d2322d189e156fe410567126f674e98e09d0 /src | |
| parent | 628dbdaffdf97db4db4e00777dbb3c4072019f64 (diff) | |
Fix bugs in restore-autosave
Diffstat (limited to 'src')
| -rwxr-xr-x[-rw-r--r--] | src/authenticate.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/bin/git-autosave-daemon.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/bin/git-autosave.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/bin/git-init-autosave.rs | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/bin/git-restore-autosave.rs | 5 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/lib.rs | 2 |
6 files changed, 5 insertions, 2 deletions
diff --git a/src/authenticate.rs b/src/authenticate.rs index fab33a2..fab33a2 100644..100755 --- a/src/authenticate.rs +++ b/src/authenticate.rs diff --git a/src/bin/git-autosave-daemon.rs b/src/bin/git-autosave-daemon.rs index a0066a5..a0066a5 100644..100755 --- a/src/bin/git-autosave-daemon.rs +++ b/src/bin/git-autosave-daemon.rs diff --git a/src/bin/git-autosave.rs b/src/bin/git-autosave.rs index 4a85206..4a85206 100644..100755 --- a/src/bin/git-autosave.rs +++ b/src/bin/git-autosave.rs diff --git a/src/bin/git-init-autosave.rs b/src/bin/git-init-autosave.rs index 8e72a9e..8e72a9e 100644..100755 --- a/src/bin/git-init-autosave.rs +++ b/src/bin/git-init-autosave.rs diff --git a/src/bin/git-restore-autosave.rs b/src/bin/git-restore-autosave.rs index 51cc14c..8613e15 100644..100755 --- a/src/bin/git-restore-autosave.rs +++ b/src/bin/git-restore-autosave.rs @@ -31,15 +31,17 @@ impl Display for AutosaveOption { fn main() -> Result<(), anyhow::Error> { let all_users = std::env::args().any(|arg| arg == "--all-users"); let all_branches = std::env::args().any(|arg| arg == "--all-branches"); + let all_devices = std::env::args().any(|arg| arg == "--all-devices"); let anytime = std::env::args().any(|arg| arg == "--anytime"); let force = std::env::args().any(|arg| arg == "--force"); let repository = Repository::discover(".")?; + let gitconfig = repository.config()?; + let repo_id = gitconfig.get_entry("autosave.id")?; let signature = repository.signature()?; let branch = git_autosave::current_branch(&repository)?; let earliest_time = repository.head()?.peel_to_commit()?.time(); - let gitconfig = repository.config()?; let config: &'static _ = Box::leak(Box::new(git_autosave::load_config()?)); let auth = GitAuthenticator::new().set_prompter(Inquirer(config)); let mut callbacks = RemoteCallbacks::new(); @@ -61,6 +63,7 @@ fn main() -> Result<(), anyhow::Error> { }) .filter(|autosave| all_branches || autosave.branch_name == branch) .filter(|autosave| anytime || autosave.time > earliest_time) + .filter(|autosave| all_devices || autosave.repo_id.as_bytes() != repo_id.value_bytes()) .collect::<Vec<_>>(); if autosaves.is_empty() { diff --git a/src/lib.rs b/src/lib.rs index 839403b..5a6b7df 100644..100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -330,7 +330,7 @@ pub fn merge_commit_with_tree( &commit.tree()?, Some(MergeOptions::new().find_renames(true).patience(true)), )? - .write_tree()?) + .write_tree_to(repository)?) } pub fn save_undo_tree(repository: &Repository, workdir: &Tree<'_>) -> Result<(), TreeError> { |
