diff options
Diffstat (limited to 'src/modules/fossil_branch.rs')
-rw-r--r-- | src/modules/fossil_branch.rs | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/modules/fossil_branch.rs b/src/modules/fossil_branch.rs index da4dabbdb..7cc4d331b 100644 --- a/src/modules/fossil_branch.rs +++ b/src/modules/fossil_branch.rs @@ -22,15 +22,11 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { } else { ".fslckout" }; - - let is_checkout = context - .try_begin_scan()? + // See if we're in a check-out by scanning upwards for a directory containing the checkout_db file + context + .begin_ancestor_scan() .set_files(&[checkout_db]) - .is_match(); - - if !is_checkout { - return None; - } + .scan()?; let len = if config.truncation_length <= 0 { log::warn!( @@ -144,6 +140,18 @@ mod tests { } #[test] + fn test_fossil_branch_subdir() -> io::Result<()> { + let tempdir = fixture_repo(FixtureProvider::Fossil)?; + let checkout_dir = tempdir.path(); + expect_fossil_branch_with_config( + &checkout_dir.join("subdir"), + None, + &[Expect::BranchName("topic-branch"), Expect::NoTruncation], + ); + tempdir.close() + } + + #[test] fn test_fossil_branch_configured() -> io::Result<()> { let tempdir = fixture_repo(FixtureProvider::Fossil)?; let checkout_dir = tempdir.path(); |