@@ -262,8 +262,6 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
262262 menu . Items . Add ( checkoutCommit ) ;
263263 }
264264
265- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
266-
267265 var pushTag = new MenuItem ( ) ;
268266 pushTag . Header = App . Text ( "TagCM.Push" , tag . Name ) ;
269267 pushTag . Icon = this . CreateMenuIcon ( "Icons.Push" ) ;
@@ -274,6 +272,22 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
274272 repo . ShowPopup ( new ViewModels . PushTag ( repo , tag ) ) ;
275273 ev . Handled = true ;
276274 } ;
275+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
276+ menu . Items . Add ( pushTag ) ;
277+
278+ if ( repo . CurrentBranch is { IsDetachedHead : false } current )
279+ {
280+ var mergeTag = new MenuItem ( ) ;
281+ mergeTag . Header = App . Text ( "TagCM.Merge" , tag . Name , current . Name ) ;
282+ mergeTag . Icon = this . CreateMenuIcon ( "Icons.Merge" ) ;
283+ mergeTag . Click += ( _ , ev ) =>
284+ {
285+ if ( repo . CanCreatePopup ( ) )
286+ repo . ShowPopup ( new ViewModels . Merge ( repo , tag , current . Name ) ) ;
287+ ev . Handled = true ;
288+ } ;
289+ menu . Items . Add ( mergeTag ) ;
290+ }
277291
278292 var deleteTag = new MenuItem ( ) ;
279293 deleteTag . Header = App . Text ( "TagCM.Delete" , tag . Name ) ;
@@ -284,6 +298,8 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
284298 repo . ShowPopup ( new ViewModels . DeleteTag ( repo , tag ) ) ;
285299 ev . Handled = true ;
286300 } ;
301+ menu . Items . Add ( deleteTag ) ;
302+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
287303
288304 var compareWithHead = new MenuItem ( ) ;
289305 compareWithHead . Header = App . Text ( "TagCM.CompareWithHead" ) ;
@@ -300,6 +316,9 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
300316 {
301317 new ViewModels . CompareCommandPalette ( repo , tag ) . Open ( ) ;
302318 } ;
319+ menu . Items . Add ( compareWithHead ) ;
320+ menu . Items . Add ( compareWith ) ;
321+ menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
303322
304323 var archive = new MenuItem ( ) ;
305324 archive . Icon = this . CreateMenuIcon ( "Icons.Archive" ) ;
@@ -310,13 +329,6 @@ private void OnTagsContextMenuRequested(object sender, ContextRequestedEventArgs
310329 repo . ShowPopup ( new ViewModels . Archive ( repo , tag ) ) ;
311330 ev . Handled = true ;
312331 } ;
313-
314- menu . Items . Add ( pushTag ) ;
315- menu . Items . Add ( deleteTag ) ;
316- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
317- menu . Items . Add ( compareWithHead ) ;
318- menu . Items . Add ( compareWith ) ;
319- menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
320332 menu . Items . Add ( archive ) ;
321333 menu . Items . Add ( new MenuItem ( ) { Header = "-" } ) ;
322334
0 commit comments