Unified · Split
| @@ -10,7 +10,7 @@ fn fetch_only() { · 9 unmodified lines | ||
| 10 | 10 | } |
| 11 | 11 | |
| 12 | 12 | mod baseline { |
| 13 | − use bstr::{BString, ByteSlice}; | |
| 13 | + use bstr::{BString, ByteSlice, ByteVec}; | |
| 14 | 14 | use git_hash::ObjectId; |
| 15 | 15 | use std::collections::HashMap; |
| 16 | 16 | |
| @@ -75,8 +75,8 @@ mod baseline { · 58 unmodified lines | ||
| 75 | 75 | drop(tokens.next()); |
| 76 | 76 | let rhs = tokens.next().unwrap().trim(); |
| 77 | 77 | mappings.push(Mapping { |
| 78 | − remote: lhs.into(), | |
| 79 | − local: rhs.into(), | |
| 78 | + remote: full_remote_ref(lhs.into()), | |
| 79 | + local: full_tracking_ref(rhs.into()), | |
| 80 | 80 | }) |
| 81 | 81 | } |
| 82 | 82 | } |
| @@ -84,4 +84,18 @@ mod baseline { · 1 unmodified line | ||
| 84 | 84 | |
| 85 | 85 | Ok(map) |
| 86 | 86 | } |
| 87 | + | |
| 88 | + fn full_remote_ref(mut name: BString) -> BString { | |
| 89 | + if !name.contains(&b'/') { | |
| 90 | + name.insert_str(0, b"refs/heads/"); | |
| 91 | + } | |
| 92 | + name | |
| 93 | + } | |
| 94 | + | |
| 95 | + fn full_tracking_ref(mut name: BString) -> BString { | |
| 96 | + if name.starts_with_str(b"origin/") { | |
| 97 | + name.insert_str(0, b"refs/remotes/"); | |
| 98 | + } | |
| 99 | + name | |
| 100 | + } | |
| 87 | 101 | } |