aboutsummaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/mod.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs
index f707b04..271f672 100644
--- a/src/sync/mod.rs
+++ b/src/sync/mod.rs
@@ -3,8 +3,10 @@ use std::fmt::{Debug, Display};
use crate::repo::{Repo, RepoError, Repos};
impl crate::GTree {
- pub async fn sync(&self, repos: Repos) {
- for mut repo in repos {
+ pub fn sync(&self, repos: Repos) {
+ for (name, repo) in repos {
+ let mut repo = repo.write().unwrap();
+
match repo.sync() {
Ok(u) => println!("{}", u),
Err(u) => println!("{}", u),
@@ -30,7 +32,7 @@ impl Repo {
if self.repo.is_some() && self.forge.is_some() {
Ok(SyncResult::no_changes(repo_name))
} else if self.repo.is_some() {
- // do push stuff
+ // TODO do push stuff
Ok(SyncResult::pushed(repo_name))
} else if self.forge.is_some() {
let url = self
@@ -45,6 +47,9 @@ impl Repo {
.clone(url)
.map_err(|err| SyncResult::err(repo_name.clone(), err))?;
+ // TODO detect moved repos based on first commit
+ // ???? how to detect and not move forks?
+
self.repo = Some(repo);
Ok(SyncResult::cloned(repo_name))
} else {