aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart-vcs/src/downloader
diff options
context:
space:
mode:
Diffstat (limited to 'crates/mozart-vcs/src/downloader')
-rw-r--r--crates/mozart-vcs/src/downloader/git.rs14
-rw-r--r--crates/mozart-vcs/src/downloader/hg.rs14
-rw-r--r--crates/mozart-vcs/src/downloader/mod.rs11
-rw-r--r--crates/mozart-vcs/src/downloader/svn.rs14
4 files changed, 49 insertions, 4 deletions
diff --git a/crates/mozart-vcs/src/downloader/git.rs b/crates/mozart-vcs/src/downloader/git.rs
index 0c78f89..814d67e 100644
--- a/crates/mozart-vcs/src/downloader/git.rs
+++ b/crates/mozart-vcs/src/downloader/git.rs
@@ -96,7 +96,7 @@ impl VcsDownloader for GitDownloader {
Ok(())
}
- fn local_changes(&self, target: &Path) -> Result<Option<String>> {
+ fn get_local_changes(&self, target: &Path) -> Result<Option<String>> {
if !target.join(".git").exists() {
return Ok(None);
}
@@ -223,6 +223,18 @@ impl VcsDownloader for GitDownloader {
)?;
Ok(output.stdout)
}
+
+ fn is_change_report(&self) -> bool {
+ true
+ }
+
+ fn is_vcs_capable_downloader(&self) -> bool {
+ true
+ }
+
+ fn is_dvcs_downloader(&self) -> bool {
+ true
+ }
}
fn collect_show_ref(process: &ProcessExecutor, target: &Path) -> Result<Option<String>> {
diff --git a/crates/mozart-vcs/src/downloader/hg.rs b/crates/mozart-vcs/src/downloader/hg.rs
index 926cfa8..3230404 100644
--- a/crates/mozart-vcs/src/downloader/hg.rs
+++ b/crates/mozart-vcs/src/downloader/hg.rs
@@ -45,7 +45,7 @@ impl VcsDownloader for HgDownloader {
Ok(())
}
- fn local_changes(&self, target: &Path) -> Result<Option<String>> {
+ fn get_local_changes(&self, target: &Path) -> Result<Option<String>> {
if !target.join(".hg").is_dir() {
return Ok(None);
}
@@ -72,4 +72,16 @@ impl VcsDownloader for HgDownloader {
)?;
Ok(output.stdout)
}
+
+ fn is_change_report(&self) -> bool {
+ true
+ }
+
+ fn is_vcs_capable_downloader(&self) -> bool {
+ true
+ }
+
+ fn is_dvcs_downloader(&self) -> bool {
+ false
+ }
}
diff --git a/crates/mozart-vcs/src/downloader/mod.rs b/crates/mozart-vcs/src/downloader/mod.rs
index 8948921..352f330 100644
--- a/crates/mozart-vcs/src/downloader/mod.rs
+++ b/crates/mozart-vcs/src/downloader/mod.rs
@@ -25,7 +25,7 @@ pub trait VcsDownloader {
/// Detect local changes in the working copy.
/// Returns `None` if clean, `Some(diff)` if modified.
/// Mirrors `Composer\Downloader\ChangeReportInterface::getLocalChanges`.
- fn local_changes(&self, target: &Path) -> Result<Option<String>>;
+ fn get_local_changes(&self, target: &Path) -> Result<Option<String>>;
/// Detect commits present locally but not on the tracking remote.
/// Returns `None` if there are no unpushed commits or the concept does
@@ -44,4 +44,13 @@ pub trait VcsDownloader {
/// Get commit log between two references.
fn commit_logs(&self, from: &str, to: &str, target: &Path) -> Result<String>;
+
+ /// instanceof ChangeReportInterface
+ fn is_change_report(&self) -> bool;
+
+ /// instanceof VcsCapableDownloaderInterface
+ fn is_vcs_capable_downloader(&self) -> bool;
+
+ /// instanceof DvcsDownloaderInterface
+ fn is_dvcs_downloader(&self) -> bool;
}
diff --git a/crates/mozart-vcs/src/downloader/svn.rs b/crates/mozart-vcs/src/downloader/svn.rs
index 533e15a..87b59da 100644
--- a/crates/mozart-vcs/src/downloader/svn.rs
+++ b/crates/mozart-vcs/src/downloader/svn.rs
@@ -51,7 +51,7 @@ impl VcsDownloader for SvnDownloader {
Ok(())
}
- fn local_changes(&self, target: &Path) -> Result<Option<String>> {
+ fn get_local_changes(&self, target: &Path) -> Result<Option<String>> {
if !target.join(".svn").is_dir() {
return Ok(None);
}
@@ -72,4 +72,16 @@ impl VcsDownloader for SvnDownloader {
.execute(&["log", "-r", &range], Some(target))?;
Ok(output.stdout)
}
+
+ fn is_change_report(&self) -> bool {
+ true
+ }
+
+ fn is_vcs_capable_downloader(&self) -> bool {
+ true
+ }
+
+ fn is_dvcs_downloader(&self) -> bool {
+ false
+ }
}