From e471cfedad7a4799860377539ca20fc057de40d9 Mon Sep 17 00:00:00 2001 From: Karl Heitmann Date: Tue, 21 Mar 2023 23:19:33 -0300 Subject: [PATCH] wip --- src/explorer/mod.rs | 115 ++++++++++++++++++++++++++++++++------------ 1 file changed, 85 insertions(+), 30 deletions(-) diff --git a/src/explorer/mod.rs b/src/explorer/mod.rs index 7c570db..7a8c8dd 100644 --- a/src/explorer/mod.rs +++ b/src/explorer/mod.rs @@ -32,9 +32,11 @@ pub struct GitExplorer { stop_condition_i: usize, stop_conditions: Vec>, nodes_len: usize, + abort: bool, + limit_stack: Option, } -impl<'a> GitExplorer { +impl GitExplorer { pub fn new(path: Option, root_oid: Option, stop_condition: Option) -> Self { let repo = match path { @@ -69,6 +71,8 @@ impl<'a> GitExplorer { }; Self { + abort: false, + limit_stack: Some(500), stop_condition_i: 0, repo, root_oid, @@ -160,19 +164,72 @@ impl<'a> GitExplorer { } pub fn run(&mut self) { - let nodes = match self.root_oid { - _ => { - let branches_tmp = self.repo.branches(Some(BranchType::Local)).unwrap(); - let mut branches: Vec = vec![]; - for b in branches_tmp { - branches.push(BranchData::from(b)); + let branches_tmp = self.repo.branches(Some(BranchType::Local)).unwrap(); + let mut branches: Vec = vec![]; + for b in branches_tmp { + branches.push(BranchData::from(b)); + } + /* + // match &mut *self.repo.head() { + // let head = self.repo.head().unwrap().clone() + let head = self.repo.head().unwrap(); + // match self.repo.head() { + let mut commit = head.peel_to_commit().unwrap(); + // let commit = commit.clone(); + // self.paint_commit_track(commit, branches) + // self.paint_commit_track(branches) + // self.paint_commit_track(commit) + let nodes = self.paint_commit_track(); + + self.nodes_len = nodes.len(); + self.nodes = nodes.clone(); + */ + // match &mut *self.repo.head() { + /* + match self.repo.head().clone() { + // match self.repo.head() { + Ok(head) => { + let mut commit = head.peel_to_commit().unwrap(); + // let commit = commit.clone(); + // self.paint_commit_track(commit, branches) + // self.paint_commit_track(branches) + // self.paint_commit_track(commit) + let nodes = self.paint_commit_track(); + + self.nodes_len = nodes.len(); + self.nodes = nodes.clone(); + }, + Err(e) => {} + } + */ + let nodes; + let commit; + // nodes = self.paint_commit_track(); + { + let head = match self.repo.head() { + Ok(reference) => reference, + Err(err) => { + eprintln!("Error: {:?}", err); + return; } - // let branches = branches.map(|b| BranchData::new(b)).collect(); - self.paint_commit_track(self.repo.head().unwrap().peel_to_commit().unwrap(), branches) - } - }; + }; + commit = head.peel_to_commit().unwrap(); + // let commit = commit.clone(); + } + nodes = self.paint_commit_track(); + + // let head = self.repo.head().unwrap(); + // match self.repo.head() { + // let mut commit = head.peel_to_commit().unwrap(); + // let commit = commit.clone(); + // self.paint_commit_track(commit, branches) + // self.paint_commit_track(branches) + // self.paint_commit_track(commit) + // let nodes = self.paint_commit_track(); + self.nodes_len = nodes.len(); - self.nodes = nodes; + self.nodes = nodes.clone(); + } fn find_max_index(&self, times: Vec