aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/vcs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-22 04:19:14 +0900
committernsfisis <nsfisis@gmail.com>2026-05-22 04:19:25 +0900
commit2a1696906344cb4da768a940bf8b1f89bbc82b47 (patch)
tree9e37f93baaa9858037ab3a25b13a676f07ccb3a9 /crates/shirabe/src/repository/vcs
parent6739da8a8e271a82d1bf8ca79bba58640ae6e743 (diff)
downloadphp-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.tar.gz
php-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.tar.zst
php-shirabe-2a1696906344cb4da768a940bf8b1f89bbc82b47.zip
refactor: share Pool via Rc<RefCell>
Convert Pool to Rc<RefCell<Pool>> so Solver, Decisions, and RuleSetGenerator share it, resolving the todo!() placeholders that blocked the dependency resolver (Phase C shared ownership). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/repository/vcs')
-rw-r--r--crates/shirabe/src/repository/vcs/forgejo_driver.rs2
-rw-r--r--crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs6
-rw-r--r--crates/shirabe/src/repository/vcs/git_driver.rs10
-rw-r--r--crates/shirabe/src/repository/vcs/github_driver.rs10
-rw-r--r--crates/shirabe/src/repository/vcs/gitlab_driver.rs10
-rw-r--r--crates/shirabe/src/repository/vcs/perforce_driver.rs2
6 files changed, 20 insertions, 20 deletions
diff --git a/crates/shirabe/src/repository/vcs/forgejo_driver.rs b/crates/shirabe/src/repository/vcs/forgejo_driver.rs
index 18df35d..72fd6af 100644
--- a/crates/shirabe/src/repository/vcs/forgejo_driver.rs
+++ b/crates/shirabe/src/repository/vcs/forgejo_driver.rs
@@ -534,7 +534,7 @@ impl ForgejoDriver {
todo!("clone io for GitDriver setup"),
self.inner.config.clone(),
self.inner.http_downloader.clone(),
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.process.clone(),
),
tags: None,
branches: None,
diff --git a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
index 1cb7b46..19f0246 100644
--- a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
+++ b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
@@ -694,9 +694,9 @@ impl GitBitbucketDriver {
// TODO(phase-b): only handle TransportException
let mut bitbucket_util = Bitbucket::new(
self.inner.io.clone_box(),
- std::rc::Rc::clone(&self.inner.config),
- Some(std::rc::Rc::clone(&self.inner.process)),
- Some(std::rc::Rc::clone(&self.inner.http_downloader)),
+ self.inner.config.clone(),
+ Some(self.inner.process.clone()),
+ Some(self.inner.http_downloader.clone()),
None,
)?;
diff --git a/crates/shirabe/src/repository/vcs/git_driver.rs b/crates/shirabe/src/repository/vcs/git_driver.rs
index 8c0aefd..69b16b6 100644
--- a/crates/shirabe/src/repository/vcs/git_driver.rs
+++ b/crates/shirabe/src/repository/vcs/git_driver.rs
@@ -118,8 +118,8 @@ impl GitDriver {
let mut git_util = GitUtil::new(
self.inner.io.clone_box(),
- std::rc::Rc::clone(&self.inner.config),
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.config.clone(),
+ self.inner.process.clone(),
std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))),
);
if !git_util.sync_mirror(&self.inner.url, &self.repo_dir)? {
@@ -184,8 +184,8 @@ impl GitDriver {
let mut git_util = GitUtil::new(
self.inner.io.clone_box(),
- std::rc::Rc::clone(&self.inner.config),
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.config.clone(),
+ self.inner.process.clone(),
std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))),
);
if !Filesystem::is_local_path(&self.inner.url) {
@@ -451,7 +451,7 @@ impl GitDriver {
let mut git_util = GitUtil::new(
io.clone_box(),
todo!(),
- std::rc::Rc::clone(&process),
+ process.clone(),
std::rc::Rc::new(std::cell::RefCell::new(Filesystem::new(None))),
);
GitUtil::clean_env(&process);
diff --git a/crates/shirabe/src/repository/vcs/github_driver.rs b/crates/shirabe/src/repository/vcs/github_driver.rs
index c2207ee..6c8d495 100644
--- a/crates/shirabe/src/repository/vcs/github_driver.rs
+++ b/crates/shirabe/src/repository/vcs/github_driver.rs
@@ -1016,9 +1016,9 @@ impl GitHubDriver {
Err(e) => {
let mut git_hub_util = GitHub::new(
self.inner.io.clone_box(),
- std::rc::Rc::clone(&self.inner.config),
- Some(std::rc::Rc::clone(&self.inner.process)),
- Some(std::rc::Rc::clone(&self.inner.http_downloader)),
+ self.inner.config.clone(),
+ Some(self.inner.process.clone()),
+ Some(self.inner.http_downloader.clone()),
)
.map_err(|err| TransportException::new(err.to_string(), 0))?;
@@ -1296,8 +1296,8 @@ impl GitHubDriver {
repo_config,
self.inner.io.clone_box(),
self.inner.config.clone(),
- std::rc::Rc::clone(&self.inner.http_downloader),
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.http_downloader.clone(),
+ self.inner.process.clone(),
);
git_driver.initialize()?;
self.git_driver = Some(git_driver);
diff --git a/crates/shirabe/src/repository/vcs/gitlab_driver.rs b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
index 1966237..8a24b7d 100644
--- a/crates/shirabe/src/repository/vcs/gitlab_driver.rs
+++ b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
@@ -770,8 +770,8 @@ impl GitLabDriver {
repo_config,
self.inner.io.clone_box(),
self.inner.config.clone(),
- std::rc::Rc::clone(&self.inner.http_downloader),
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.http_downloader.clone(),
+ self.inner.process.clone(),
);
git_driver.initialize()?;
self.git_driver = Some(git_driver);
@@ -886,9 +886,9 @@ impl GitLabDriver {
Err(e) => {
let mut git_lab_util = GitLab::new(
self.inner.io.clone_box(),
- std::rc::Rc::clone(&self.inner.config),
- Some(std::rc::Rc::clone(&self.inner.process)),
- Some(std::rc::Rc::clone(&self.inner.http_downloader)),
+ self.inner.config.clone(),
+ Some(self.inner.process.clone()),
+ Some(self.inner.http_downloader.clone()),
)
.map_err(|err| TransportException::new(err.to_string(), 0))?;
diff --git a/crates/shirabe/src/repository/vcs/perforce_driver.rs b/crates/shirabe/src/repository/vcs/perforce_driver.rs
index 0bd6d12..35da517 100644
--- a/crates/shirabe/src/repository/vcs/perforce_driver.rs
+++ b/crates/shirabe/src/repository/vcs/perforce_driver.rs
@@ -76,7 +76,7 @@ impl PerforceDriver {
repo_config.clone(),
self.inner.url.clone(),
repo_dir,
- std::rc::Rc::clone(&self.inner.process),
+ self.inner.process.clone(),
self.inner.io.clone_box(),
));