diff options
Diffstat (limited to 'src/bin/git-undo-restore-autosave.rs')
| -rw-r--r-- | src/bin/git-undo-restore-autosave.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/bin/git-undo-restore-autosave.rs b/src/bin/git-undo-restore-autosave.rs new file mode 100644 index 0000000..c3d00df --- /dev/null +++ b/src/bin/git-undo-restore-autosave.rs @@ -0,0 +1,16 @@ +use git2::{Repository, build::CheckoutBuilder}; + +fn main() -> Result<(), anyhow::Error> { + let force = std::env::args().any(|arg| arg == "--force"); + + let repository = Repository::discover(".")?; + let tree = git_autosave::load_undo_tree(&repository)?; + + let mut options = CheckoutBuilder::new(); + if force { + options.force(); + } + repository.checkout_tree(tree.as_object(), Some(&mut options))?; + + Ok(()) +} |
