Code

git-gui: Remove usernames from absolute SSH urls during merging
authorShawn O. Pearce <spearce@spearce.org>
Wed, 25 Jul 2007 09:02:38 +0000 (05:02 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 25 Jul 2007 09:02:38 +0000 (05:02 -0400)
If we are being asked to merge a tracking branch that comes from a
remote repository accessed by the very common SSH URL format of
"user@host:/path/to/repo" then we really don't need the username
as part of the merge message, it only clutters up the history and
makes things more confusing.  So we instead clip the username part
off if the local filesystem path is absolute, as its probably not
going to be an ambiguous URL even when it is missing the username.

On the other hand we cannot clip the username off if the URL is
not absolute, because in such cases (e.g. "user@host:myrepo") the
directory that the repository path is resolved in is relative to
the user's home directory, and the username becomes important.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/merge.tcl

index c8b486710aa66afce100219a1167618a0103cd87..148d859c5c11022f68c4c4217953ac1cd3f1f8f1 100644 (file)
@@ -102,6 +102,9 @@ method _start {} {
                set stitle $branch
        } else {
                set remote $remote_url([lindex $spec 1])
+               if {[regexp {^[^:@]*@[^:]*:/} $remote]} {
+                       regsub {^[^:@]*@} $remote {} remote
+               }
                set branch [lindex $spec 2]
                set stitle "$branch of $remote"
        }