diff options
Diffstat (limited to 'src/bin/git-restore-autosave.rs')
| -rwxr-xr-x[-rw-r--r--] | src/bin/git-restore-autosave.rs | 5 |
1 files changed, 4 insertions, 1 deletions
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() { |
