@@ -5218,6 +5218,109 @@ fn dependent_branch_on_base() -> anyhow::Result<()> {
52185218 Ok ( ( ) )
52195219}
52205220
5221+ #[ test]
5222+ fn remote_and_integrated_tracking_branch_on_merge ( ) -> anyhow:: Result < ( ) > {
5223+ let ( repo, mut meta) = read_only_in_memory_scenario ( "ws/remote-and-integrated-tracking" ) ?;
5224+ insta:: assert_snapshot!( visualize_commit_graph_all( & repo) ?, @r"
5225+ * d018f71 (HEAD -> gitbutler/workspace) GitButler Workspace Commit
5226+ | * c1e26b0 (origin/main, main) M-advanced
5227+ |/
5228+ | * 2181501 (origin/A) A-remote
5229+ |/
5230+ * 1ee1e34 (A) M-base
5231+ |\
5232+ | * efc3b77 (tmp1) X
5233+ * | c822d66 Y
5234+ |/
5235+ * bce0c5e M2
5236+ * 3183e43 M1
5237+ " ) ;
5238+ add_stack_with_segments ( & mut meta, 1 , "A" , StackState :: InWorkspace , & [ ] ) ;
5239+
5240+ let graph = Graph :: from_head (
5241+ & repo,
5242+ & * meta,
5243+ standard_options ( ) . with_extra_target_commit_id ( repo. rev_parse_single ( "origin/main" ) ?) ,
5244+ ) ?
5245+ . validated ( ) ?;
5246+ insta:: assert_snapshot!( graph_workspace( & graph. to_workspace( ) ?) , @r"
5247+ 📕🏘️:0:gitbutler/workspace <> ✓refs/remotes/origin/main⇣1 on 1ee1e34
5248+ └── ≡📙:3:A <> origin/A →:4:⇣1 on 1ee1e34 {1}
5249+ └── 📙:3:A <> origin/A →:4:⇣1
5250+ └── 🟣2181501
5251+ " ) ;
5252+
5253+ Ok ( ( ) )
5254+ }
5255+
5256+ #[ test]
5257+ fn remote_and_integrated_tracking_branch_on_linear_segment ( ) -> anyhow:: Result < ( ) > {
5258+ let ( repo, mut meta) =
5259+ read_only_in_memory_scenario ( "ws/remote-and-integrated-tracking-linear" ) ?;
5260+ insta:: assert_snapshot!( visualize_commit_graph_all( & repo) ?, @r"
5261+ * 21e584f (HEAD -> gitbutler/workspace) GitButler Workspace Commit
5262+ | * 8dc508f (origin/main, main) M-advanced
5263+ |/
5264+ | * 197ddce (origin/A) A-remote
5265+ |/
5266+ * 081bae9 (A) M-base
5267+ * 3183e43 M1
5268+ " ) ;
5269+ add_stack_with_segments ( & mut meta, 1 , "A" , StackState :: InWorkspace , & [ ] ) ;
5270+
5271+ let graph = Graph :: from_head (
5272+ & repo,
5273+ & * meta,
5274+ standard_options ( ) . with_extra_target_commit_id ( repo. rev_parse_single ( "origin/main" ) ?) ,
5275+ ) ?
5276+ . validated ( ) ?;
5277+ insta:: assert_snapshot!( graph_workspace( & graph. to_workspace( ) ?) , @r"
5278+ 📕🏘️:0:gitbutler/workspace <> ✓refs/remotes/origin/main⇣1 on 081bae9
5279+ └── ≡📙:3:A <> origin/A →:4:⇣1 on 081bae9 {1}
5280+ └── 📙:3:A <> origin/A →:4:⇣1
5281+ └── 🟣197ddce
5282+ " ) ;
5283+
5284+ Ok ( ( ) )
5285+ }
5286+
5287+ #[ test]
5288+ fn remote_and_integrated_tracking_branch_on_merge_extra_target ( ) -> anyhow:: Result < ( ) > {
5289+ let ( repo, mut meta) =
5290+ read_only_in_memory_scenario ( "ws/remote-and-integrated-tracking-extra-commit" ) ?;
5291+ insta:: assert_snapshot!( visualize_commit_graph_all( & repo) ?, @r"
5292+ * 5f2810f (HEAD -> gitbutler/workspace) GitButler Workspace Commit
5293+ * 9f47a25 (A) A-local
5294+ | * c1e26b0 (origin/main, main) M-advanced
5295+ |/
5296+ | * 2181501 (origin/A) A-remote
5297+ |/
5298+ * 1ee1e34 M-base
5299+ |\
5300+ | * efc3b77 (tmp1) X
5301+ * | c822d66 Y
5302+ |/
5303+ * bce0c5e M2
5304+ * 3183e43 M1
5305+ " ) ;
5306+ add_stack_with_segments ( & mut meta, 1 , "A" , StackState :: InWorkspace , & [ ] ) ;
5307+ let graph = Graph :: from_head (
5308+ & repo,
5309+ & * meta,
5310+ standard_options ( ) . with_extra_target_commit_id ( repo. rev_parse_single ( "origin/main" ) ?) ,
5311+ ) ?
5312+ . validated ( ) ?;
5313+ insta:: assert_snapshot!( graph_workspace( & graph. to_workspace( ) ?) , @r"
5314+ 📕🏘️:0:gitbutler/workspace <> ✓refs/remotes/origin/main⇣1 on 1ee1e34
5315+ └── ≡📙:3:A <> origin/A →:4:⇡1⇣1 on 1ee1e34 {1}
5316+ └── 📙:3:A <> origin/A →:4:⇡1⇣1
5317+ ├── 🟣2181501
5318+ └── ·9f47a25 (🏘️)
5319+ " ) ;
5320+
5321+ Ok ( ( ) )
5322+ }
5323+
52215324#[ test]
52225325fn unapplied_branch_on_base ( ) -> anyhow:: Result < ( ) > {
52235326 let ( repo, mut meta) = read_only_in_memory_scenario ( "ws/unapplied-branch-on-base" ) ?;
0 commit comments