@@ -155,6 +155,7 @@ mod tests {
155
155
remotes:: { fetch, push:: push} ,
156
156
tests:: { repo_clone, repo_init_bare} ,
157
157
} ;
158
+ use pretty_assertions:: assert_eq;
158
159
use sync:: tests:: write_commit_file;
159
160
160
161
#[ test]
@@ -273,4 +274,42 @@ mod tests {
273
274
tags_missing_remote ( clone1_dir, "origin" , None ) . unwrap ( ) ;
274
275
assert ! ( tags_missing. is_empty( ) ) ;
275
276
}
277
+
278
+ #[ test]
279
+ fn test_tags_fetch_same_branch ( ) {
280
+ let ( r1_dir, _repo) = repo_init_bare ( ) . unwrap ( ) ;
281
+ let r1_dir = r1_dir. path ( ) . to_str ( ) . unwrap ( ) ;
282
+
283
+ let ( clone1_dir, clone1) = repo_clone ( r1_dir) . unwrap ( ) ;
284
+ let clone1_dir = clone1_dir. path ( ) . to_str ( ) . unwrap ( ) ;
285
+
286
+ let commit1 =
287
+ write_commit_file ( & clone1, "test.txt" , "test" , "commit1" ) ;
288
+ push (
289
+ clone1_dir, "origin" , "master" , false , false , None , None ,
290
+ )
291
+ . unwrap ( ) ;
292
+
293
+ let ( clone2_dir, _clone2) = repo_clone ( r1_dir) . unwrap ( ) ;
294
+ let clone2_dir = clone2_dir. path ( ) . to_str ( ) . unwrap ( ) ;
295
+
296
+ // clone1 - creates tag
297
+
298
+ sync:: tag ( clone1_dir, & commit1, "tag1" ) . unwrap ( ) ;
299
+
300
+ let tags1 = sync:: get_tags ( clone1_dir) . unwrap ( ) ;
301
+
302
+ push_tags ( clone1_dir, "origin" , None , None ) . unwrap ( ) ;
303
+ let tags_missing =
304
+ tags_missing_remote ( clone1_dir, "origin" , None ) . unwrap ( ) ;
305
+ assert ! ( tags_missing. is_empty( ) ) ;
306
+
307
+ // clone 2 - pull
308
+
309
+ fetch ( clone2_dir, "master" , None , None ) . unwrap ( ) ;
310
+
311
+ let tags2 = sync:: get_tags ( clone2_dir) . unwrap ( ) ;
312
+
313
+ assert_eq ! ( tags1, tags2) ;
314
+ }
276
315
}
0 commit comments