summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMica White <botahamec@outlook.com>2026-03-30 20:27:33 -0400
committerMica White <botahamec@outlook.com>2026-03-30 20:27:33 -0400
commitee630350d3c0c28a561b166381d5b75ea8bf209a (patch)
treebab2d2322d189e156fe410567126f674e98e09d0
parent628dbdaffdf97db4db4e00777dbb3c4072019f64 (diff)
Fix bugs in restore-autosave
-rwxr-xr-x[-rw-r--r--].gitignore0
-rwxr-xr-x[-rw-r--r--]Cargo.lock0
-rwxr-xr-x[-rw-r--r--]Cargo.toml0
-rwxr-xr-x[-rw-r--r--]git-autosave.service0
-rwxr-xr-x[-rw-r--r--]rustfmt.toml0
-rwxr-xr-x[-rw-r--r--]src/authenticate.rs0
-rwxr-xr-x[-rw-r--r--]src/bin/git-autosave-daemon.rs0
-rwxr-xr-x[-rw-r--r--]src/bin/git-autosave.rs0
-rwxr-xr-x[-rw-r--r--]src/bin/git-init-autosave.rs0
-rwxr-xr-x[-rw-r--r--]src/bin/git-restore-autosave.rs5
-rwxr-xr-x[-rw-r--r--]src/lib.rs2
11 files changed, 5 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index ea8c4bf..ea8c4bf 100644..100755
--- a/.gitignore
+++ b/.gitignore
diff --git a/Cargo.lock b/Cargo.lock
index 7553132..7553132 100644..100755
--- a/Cargo.lock
+++ b/Cargo.lock
diff --git a/Cargo.toml b/Cargo.toml
index c047e85..c047e85 100644..100755
--- a/Cargo.toml
+++ b/Cargo.toml
diff --git a/git-autosave.service b/git-autosave.service
index 1db88d8..1db88d8 100644..100755
--- a/git-autosave.service
+++ b/git-autosave.service
diff --git a/rustfmt.toml b/rustfmt.toml
index d3d0d1e..d3d0d1e 100644..100755
--- a/rustfmt.toml
+++ b/rustfmt.toml
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> {