upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/lib/git/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/git/mod.rs')
-rw-r--r--src/lib/git/mod.rs87
1 files changed, 38 insertions, 49 deletions
diff --git a/src/lib/git/mod.rs b/src/lib/git/mod.rs
index 7a7ad5d..2b78f38 100644
--- a/src/lib/git/mod.rs
+++ b/src/lib/git/mod.rs
@@ -3,12 +3,12 @@ use std::{
3 path::{Path, PathBuf}, 3 path::{Path, PathBuf},
4}; 4};
5 5
6use anyhow::{bail, Context, Result}; 6use anyhow::{Context, Result, bail};
7use git2::{DiffOptions, Oid, Revwalk}; 7use git2::{DiffOptions, Oid, Revwalk};
8pub use identify_ahead_behind::identify_ahead_behind; 8pub use identify_ahead_behind::identify_ahead_behind;
9use nostr_sdk::{ 9use nostr_sdk::{
10 hashes::{sha1::Hash as Sha1Hash, Hash},
11 Tags, 10 Tags,
11 hashes::{Hash, sha1::Hash as Sha1Hash},
12}; 12};
13 13
14use crate::git_events::{get_commit_id_from_patch, tag_value}; 14use crate::git_events::{get_commit_id_from_patch, tag_value};
@@ -1493,10 +1493,10 @@ mod tests {
1493 &oid_to_sha1(&feature_oid), 1493 &oid_to_sha1(&feature_oid),
1494 )?; 1494 )?;
1495 assert_eq!(ahead, vec![]); 1495 assert_eq!(ahead, vec![]);
1496 assert_eq!( 1496 assert_eq!(behind, vec![
1497 behind, 1497 oid_to_sha1(&behind_2_oid),
1498 vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid),], 1498 oid_to_sha1(&behind_1_oid),
1499 ); 1499 ],);
1500 Ok(()) 1500 Ok(())
1501 } 1501 }
1502 1502
@@ -1518,10 +1518,10 @@ mod tests {
1518 &oid_to_sha1(&main_oid), 1518 &oid_to_sha1(&main_oid),
1519 &oid_to_sha1(&ahead_2_oid), 1519 &oid_to_sha1(&ahead_2_oid),
1520 )?; 1520 )?;
1521 assert_eq!( 1521 assert_eq!(ahead, vec![
1522 ahead, 1522 oid_to_sha1(&ahead_2_oid),
1523 vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid),], 1523 oid_to_sha1(&ahead_1_oid),
1524 ); 1524 ],);
1525 assert_eq!(behind, vec![]); 1525 assert_eq!(behind, vec![]);
1526 Ok(()) 1526 Ok(())
1527 } 1527 }
@@ -1550,14 +1550,14 @@ mod tests {
1550 &oid_to_sha1(&behind_2_oid), 1550 &oid_to_sha1(&behind_2_oid),
1551 &oid_to_sha1(&ahead_2_oid), 1551 &oid_to_sha1(&ahead_2_oid),
1552 )?; 1552 )?;
1553 assert_eq!( 1553 assert_eq!(ahead, vec![
1554 ahead, 1554 oid_to_sha1(&ahead_2_oid),
1555 vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid)], 1555 oid_to_sha1(&ahead_1_oid)
1556 ); 1556 ],);
1557 assert_eq!( 1557 assert_eq!(behind, vec![
1558 behind, 1558 oid_to_sha1(&behind_2_oid),
1559 vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid)], 1559 oid_to_sha1(&behind_1_oid)
1560 ); 1560 ],);
1561 Ok(()) 1561 Ok(())
1562 } 1562 }
1563 } 1563 }
@@ -2212,10 +2212,9 @@ mod tests {
2212 test_repo.populate_with_test_branch()?; 2212 test_repo.populate_with_test_branch()?;
2213 test_repo.checkout("main")?; 2213 test_repo.checkout("main")?;
2214 2214
2215 assert_eq!( 2215 assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![
2216 git_repo.parse_starting_commits("HEAD~1")?, 2216 str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?
2217 vec![str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?], 2217 ],);
2218 );
2219 Ok(()) 2218 Ok(())
2220 } 2219 }
2221 2220
@@ -2225,10 +2224,9 @@ mod tests {
2225 let git_repo = Repo::from_path(&test_repo.dir)?; 2224 let git_repo = Repo::from_path(&test_repo.dir)?;
2226 test_repo.populate_with_test_branch()?; 2225 test_repo.populate_with_test_branch()?;
2227 2226
2228 assert_eq!( 2227 assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![
2229 git_repo.parse_starting_commits("HEAD~1")?, 2228 str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?
2230 vec![str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?], 2229 ],);
2231 );
2232 Ok(()) 2230 Ok(())
2233 } 2231 }
2234 } 2232 }
@@ -2242,13 +2240,10 @@ mod tests {
2242 test_repo.populate_with_test_branch()?; 2240 test_repo.populate_with_test_branch()?;
2243 test_repo.checkout("main")?; 2241 test_repo.checkout("main")?;
2244 2242
2245 assert_eq!( 2243 assert_eq!(git_repo.parse_starting_commits("HEAD~2")?, vec![
2246 git_repo.parse_starting_commits("HEAD~2")?, 2244 str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?,
2247 vec![ 2245 str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?,
2248 str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, 2246 ],);
2249 str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?,
2250 ],
2251 );
2252 Ok(()) 2247 Ok(())
2253 } 2248 }
2254 } 2249 }
@@ -2261,14 +2256,11 @@ mod tests {
2261 let git_repo = Repo::from_path(&test_repo.dir)?; 2256 let git_repo = Repo::from_path(&test_repo.dir)?;
2262 test_repo.populate_with_test_branch()?; 2257 test_repo.populate_with_test_branch()?;
2263 2258
2264 assert_eq!( 2259 assert_eq!(git_repo.parse_starting_commits("HEAD~3")?, vec![
2265 git_repo.parse_starting_commits("HEAD~3")?, 2260 str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?,
2266 vec![ 2261 str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?,
2267 str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?, 2262 str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?,
2268 str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, 2263 ],);
2269 str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?,
2270 ],
2271 );
2272 Ok(()) 2264 Ok(())
2273 } 2265 }
2274 } 2266 }
@@ -2282,14 +2274,11 @@ mod tests {
2282 test_repo.populate_with_test_branch()?; 2274 test_repo.populate_with_test_branch()?;
2283 test_repo.checkout("main")?; 2275 test_repo.checkout("main")?;
2284 2276
2285 assert_eq!( 2277 assert_eq!(git_repo.parse_starting_commits("af474d8..a23e6b0")?, vec![
2286 git_repo.parse_starting_commits("af474d8..a23e6b0")?, 2278 str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?,
2287 vec![ 2279 str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?,
2288 str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, 2280 str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?,
2289 str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, 2281 ],);
2290 str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?,
2291 ],
2292 );
2293 Ok(()) 2282 Ok(())
2294 } 2283 }
2295 } 2284 }