diff options
Diffstat (limited to 'src/lib/git')
| -rw-r--r-- | src/lib/git/identify_ahead_behind.rs | 8 | ||||
| -rw-r--r-- | src/lib/git/mod.rs | 94 | ||||
| -rw-r--r-- | src/lib/git/nostr_url.rs | 8 |
3 files changed, 59 insertions, 51 deletions
diff --git a/src/lib/git/identify_ahead_behind.rs b/src/lib/git/identify_ahead_behind.rs index baea687..d736522 100644 --- a/src/lib/git/identify_ahead_behind.rs +++ b/src/lib/git/identify_ahead_behind.rs | |||
| @@ -184,10 +184,10 @@ mod tests { | |||
| 184 | identify_ahead_behind(&git_repo, &Some("feature".to_string()), &None)?; | 184 | identify_ahead_behind(&git_repo, &Some("feature".to_string()), &None)?; |
| 185 | 185 | ||
| 186 | assert_eq!(from_branch, "feature"); | 186 | assert_eq!(from_branch, "feature"); |
| 187 | assert_eq!(ahead, vec![ | 187 | assert_eq!( |
| 188 | oid_to_sha1(&feature_oid), | 188 | ahead, |
| 189 | oid_to_sha1(&dev_oid_first) | 189 | vec![oid_to_sha1(&feature_oid), oid_to_sha1(&dev_oid_first)] |
| 190 | ]); | 190 | ); |
| 191 | assert_eq!(to_branch, "main"); | 191 | assert_eq!(to_branch, "main"); |
| 192 | assert_eq!(behind, vec![]); | 192 | assert_eq!(behind, vec![]); |
| 193 | 193 | ||
diff --git a/src/lib/git/mod.rs b/src/lib/git/mod.rs index 0256457..d4bf2f5 100644 --- a/src/lib/git/mod.rs +++ b/src/lib/git/mod.rs | |||
| @@ -888,7 +888,7 @@ pub fn save_git_config_item(git_repo: &Option<&Repo>, item: &str, value: &str) - | |||
| 888 | git2::Config::open_default()? | 888 | git2::Config::open_default()? |
| 889 | .open_global()? | 889 | .open_global()? |
| 890 | .set_str(item, value) | 890 | .set_str(item, value) |
| 891 | .context(format!("failed to set global git config item {}", item)) | 891 | .context(format!("failed to set global git config item {item}")) |
| 892 | } | 892 | } |
| 893 | } | 893 | } |
| 894 | 894 | ||
| @@ -901,10 +901,7 @@ pub fn remove_git_config_item(git_repo: &Option<&Repo>, item: &str) -> Result<bo | |||
| 901 | git2::Config::open_default()? | 901 | git2::Config::open_default()? |
| 902 | .open_global()? | 902 | .open_global()? |
| 903 | .remove(item) | 903 | .remove(item) |
| 904 | .context(format!( | 904 | .context(format!("failed to remove existing git config item {item}"))?; |
| 905 | "failed to remove existing git config item {}", | ||
| 906 | item | ||
| 907 | ))?; | ||
| 908 | Ok(true) | 905 | Ok(true) |
| 909 | } | 906 | } |
| 910 | } | 907 | } |
| @@ -1271,7 +1268,7 @@ mod tests { | |||
| 1271 | +some content1\n\\ \ | 1268 | +some content1\n\\ \ |
| 1272 | No newline at end of file\n\ | 1269 | No newline at end of file\n\ |
| 1273 | --\n\ | 1270 | --\n\ |
| 1274 | libgit2 1.9.0\n\ | 1271 | libgit2 1.9.1\n\ |
| 1275 | \n\ | 1272 | \n\ |
| 1276 | ", | 1273 | ", |
| 1277 | git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &None)?, | 1274 | git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &None)?, |
| @@ -1307,7 +1304,7 @@ mod tests { | |||
| 1307 | +some content1\n\\ \ | 1304 | +some content1\n\\ \ |
| 1308 | No newline at end of file\n\ | 1305 | No newline at end of file\n\ |
| 1309 | --\n\ | 1306 | --\n\ |
| 1310 | libgit2 1.9.0\n\ | 1307 | libgit2 1.9.1\n\ |
| 1311 | \n\ | 1308 | \n\ |
| 1312 | ", | 1309 | ", |
| 1313 | git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &Some((3, 5)))?, | 1310 | git_repo.make_patch_from_commit(&oid_to_sha1(&oid), &Some((3, 5)))?, |
| @@ -1493,10 +1490,10 @@ mod tests { | |||
| 1493 | &oid_to_sha1(&feature_oid), | 1490 | &oid_to_sha1(&feature_oid), |
| 1494 | )?; | 1491 | )?; |
| 1495 | assert_eq!(ahead, vec![]); | 1492 | assert_eq!(ahead, vec![]); |
| 1496 | assert_eq!(behind, vec![ | 1493 | assert_eq!( |
| 1497 | oid_to_sha1(&behind_2_oid), | 1494 | behind, |
| 1498 | oid_to_sha1(&behind_1_oid), | 1495 | vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid),], |
| 1499 | ],); | 1496 | ); |
| 1500 | Ok(()) | 1497 | Ok(()) |
| 1501 | } | 1498 | } |
| 1502 | 1499 | ||
| @@ -1518,10 +1515,10 @@ mod tests { | |||
| 1518 | &oid_to_sha1(&main_oid), | 1515 | &oid_to_sha1(&main_oid), |
| 1519 | &oid_to_sha1(&ahead_2_oid), | 1516 | &oid_to_sha1(&ahead_2_oid), |
| 1520 | )?; | 1517 | )?; |
| 1521 | assert_eq!(ahead, vec![ | 1518 | assert_eq!( |
| 1522 | oid_to_sha1(&ahead_2_oid), | 1519 | ahead, |
| 1523 | oid_to_sha1(&ahead_1_oid), | 1520 | vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid),], |
| 1524 | ],); | 1521 | ); |
| 1525 | assert_eq!(behind, vec![]); | 1522 | assert_eq!(behind, vec![]); |
| 1526 | Ok(()) | 1523 | Ok(()) |
| 1527 | } | 1524 | } |
| @@ -1550,14 +1547,14 @@ mod tests { | |||
| 1550 | &oid_to_sha1(&behind_2_oid), | 1547 | &oid_to_sha1(&behind_2_oid), |
| 1551 | &oid_to_sha1(&ahead_2_oid), | 1548 | &oid_to_sha1(&ahead_2_oid), |
| 1552 | )?; | 1549 | )?; |
| 1553 | assert_eq!(ahead, vec![ | 1550 | assert_eq!( |
| 1554 | oid_to_sha1(&ahead_2_oid), | 1551 | ahead, |
| 1555 | oid_to_sha1(&ahead_1_oid) | 1552 | vec![oid_to_sha1(&ahead_2_oid), oid_to_sha1(&ahead_1_oid)], |
| 1556 | ],); | 1553 | ); |
| 1557 | assert_eq!(behind, vec![ | 1554 | assert_eq!( |
| 1558 | oid_to_sha1(&behind_2_oid), | 1555 | behind, |
| 1559 | oid_to_sha1(&behind_1_oid) | 1556 | vec![oid_to_sha1(&behind_2_oid), oid_to_sha1(&behind_1_oid)], |
| 1560 | ],); | 1557 | ); |
| 1561 | Ok(()) | 1558 | Ok(()) |
| 1562 | } | 1559 | } |
| 1563 | } | 1560 | } |
| @@ -2212,9 +2209,10 @@ mod tests { | |||
| 2212 | test_repo.populate_with_test_branch()?; | 2209 | test_repo.populate_with_test_branch()?; |
| 2213 | test_repo.checkout("main")?; | 2210 | test_repo.checkout("main")?; |
| 2214 | 2211 | ||
| 2215 | assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![ | 2212 | assert_eq!( |
| 2216 | str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")? | 2213 | git_repo.parse_starting_commits("HEAD~1")?, |
| 2217 | ],); | 2214 | vec![str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?], |
| 2215 | ); | ||
| 2218 | Ok(()) | 2216 | Ok(()) |
| 2219 | } | 2217 | } |
| 2220 | 2218 | ||
| @@ -2224,9 +2222,10 @@ mod tests { | |||
| 2224 | let git_repo = Repo::from_path(&test_repo.dir)?; | 2222 | let git_repo = Repo::from_path(&test_repo.dir)?; |
| 2225 | test_repo.populate_with_test_branch()?; | 2223 | test_repo.populate_with_test_branch()?; |
| 2226 | 2224 | ||
| 2227 | assert_eq!(git_repo.parse_starting_commits("HEAD~1")?, vec![ | 2225 | assert_eq!( |
| 2228 | str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")? | 2226 | git_repo.parse_starting_commits("HEAD~1")?, |
| 2229 | ],); | 2227 | vec![str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?], |
| 2228 | ); | ||
| 2230 | Ok(()) | 2229 | Ok(()) |
| 2231 | } | 2230 | } |
| 2232 | } | 2231 | } |
| @@ -2240,10 +2239,13 @@ mod tests { | |||
| 2240 | test_repo.populate_with_test_branch()?; | 2239 | test_repo.populate_with_test_branch()?; |
| 2241 | test_repo.checkout("main")?; | 2240 | test_repo.checkout("main")?; |
| 2242 | 2241 | ||
| 2243 | assert_eq!(git_repo.parse_starting_commits("HEAD~2")?, vec![ | 2242 | assert_eq!( |
| 2244 | str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, | 2243 | git_repo.parse_starting_commits("HEAD~2")?, |
| 2245 | str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?, | 2244 | vec![ |
| 2246 | ],); | 2245 | str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, |
| 2246 | str_to_sha1("af474d8d271490e5c635aad337abdc050034b16a")?, | ||
| 2247 | ], | ||
| 2248 | ); | ||
| 2247 | Ok(()) | 2249 | Ok(()) |
| 2248 | } | 2250 | } |
| 2249 | } | 2251 | } |
| @@ -2256,11 +2258,14 @@ mod tests { | |||
| 2256 | let git_repo = Repo::from_path(&test_repo.dir)?; | 2258 | let git_repo = Repo::from_path(&test_repo.dir)?; |
| 2257 | test_repo.populate_with_test_branch()?; | 2259 | test_repo.populate_with_test_branch()?; |
| 2258 | 2260 | ||
| 2259 | assert_eq!(git_repo.parse_starting_commits("HEAD~3")?, vec![ | 2261 | assert_eq!( |
| 2260 | str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?, | 2262 | git_repo.parse_starting_commits("HEAD~3")?, |
| 2261 | str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, | 2263 | vec![ |
| 2262 | str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, | 2264 | str_to_sha1("82ff2bcc9aa94d1bd8faee723d4c8cc190d6061c")?, |
| 2263 | ],); | 2265 | str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, |
| 2266 | str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, | ||
| 2267 | ], | ||
| 2268 | ); | ||
| 2264 | Ok(()) | 2269 | Ok(()) |
| 2265 | } | 2270 | } |
| 2266 | } | 2271 | } |
| @@ -2274,11 +2279,14 @@ mod tests { | |||
| 2274 | test_repo.populate_with_test_branch()?; | 2279 | test_repo.populate_with_test_branch()?; |
| 2275 | test_repo.checkout("main")?; | 2280 | test_repo.checkout("main")?; |
| 2276 | 2281 | ||
| 2277 | assert_eq!(git_repo.parse_starting_commits("af474d8..a23e6b0")?, vec![ | 2282 | assert_eq!( |
| 2278 | str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, | 2283 | git_repo.parse_starting_commits("af474d8..a23e6b0")?, |
| 2279 | str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, | 2284 | vec![ |
| 2280 | str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, | 2285 | str_to_sha1("a23e6b05aaeb7d1471b4a838b51f337d5644eeb0")?, |
| 2281 | ],); | 2286 | str_to_sha1("7ab82116068982671a8111f27dc10599172334b2")?, |
| 2287 | str_to_sha1("431b84edc0d2fa118d63faa3c2db9c73d630a5ae")?, | ||
| 2288 | ], | ||
| 2289 | ); | ||
| 2282 | Ok(()) | 2290 | Ok(()) |
| 2283 | } | 2291 | } |
| 2284 | } | 2292 | } |
diff --git a/src/lib/git/nostr_url.rs b/src/lib/git/nostr_url.rs index a9b08eb..e9b482f 100644 --- a/src/lib/git/nostr_url.rs +++ b/src/lib/git/nostr_url.rs | |||
| @@ -71,13 +71,13 @@ impl fmt::Display for NostrUrlDecoded { | |||
| 71 | } | 71 | } |
| 72 | write!(f, "nostr://")?; | 72 | write!(f, "nostr://")?; |
| 73 | if let Some(user) = &self.user { | 73 | if let Some(user) = &self.user { |
| 74 | write!(f, "{}@", user)?; | 74 | write!(f, "{user}@")?; |
| 75 | } | 75 | } |
| 76 | if let Some(protocol) = &self.protocol { | 76 | if let Some(protocol) = &self.protocol { |
| 77 | write!(f, "{}/", protocol)?; | 77 | write!(f, "{protocol}/")?; |
| 78 | } | 78 | } |
| 79 | if let Some(nip05) = &self.nip05 { | 79 | if let Some(nip05) = &self.nip05 { |
| 80 | write!(f, "{}/", nip05)?; | 80 | write!(f, "{nip05}/")?; |
| 81 | } else { | 81 | } else { |
| 82 | write!(f, "{}/", self.coordinate.public_key.to_bech32().unwrap())?; | 82 | write!(f, "{}/", self.coordinate.public_key.to_bech32().unwrap())?; |
| 83 | } | 83 | } |
| @@ -454,7 +454,7 @@ impl CloneUrl { | |||
| 454 | format!("{}@", user.as_deref().unwrap_or("git")).as_str(), | 454 | format!("{}@", user.as_deref().unwrap_or("git")).as_str(), |
| 455 | ); | 455 | ); |
| 456 | if url.port().is_some() { | 456 | if url.port().is_some() { |
| 457 | formatted_url = format!("ssh://{}", formatted_url); | 457 | formatted_url = format!("ssh://{formatted_url}"); |
| 458 | } else { | 458 | } else { |
| 459 | formatted_url = replace_first_occurrence(&formatted_url, '/', ':'); | 459 | formatted_url = replace_first_occurrence(&formatted_url, '/', ':'); |
| 460 | } | 460 | } |