summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 89df580)
raw | patch | inline | side by side (parent: 89df580)
author | James Bowes <jbowes@dangerouslyinc.com> | |
Tue, 5 Jun 2007 23:25:23 +0000 (19:25 -0400) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 19 Sep 2007 00:41:25 +0000 (17:41 -0700) |
Introduce git-remote rm <name> which will:
- Remove the remote config entry for <name>.
- Remove any config entries for tracking branches of <name>.
- Remove any stored remote branches of <name>.
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Remove the remote config entry for <name>.
- Remove any config entries for tracking branches of <name>.
- Remove any stored remote branches of <name>.
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-remote.perl | patch | blob | history |
diff --git a/git-remote.perl b/git-remote.perl
index f6f283ea4f8b45671b7d9b34687d5d7b8475e8b3..f513a8ad990fb655c96afcf3115597b37d73fad5 100755 (executable)
--- a/git-remote.perl
+++ b/git-remote.perl
}
}
+sub rm_remote {
+ my ($name) = @_;
+ if (!exists $remote->{$name}) {
+ print STDERR "No such remote $name\n";
+ return;
+ }
+
+ $git->command('config', '--remove-section', "remote.$name");
+
+ eval {
+ my @trackers = $git->command('config', '--get-regexp',
+ 'branch.*.remote', $name);
+ for (@trackers) {
+ /^branch\.(.*)?\.remote/;
+ $git->config('--unset', "branch.$1.remote");
+ $git->config('--unset', "branch.$1.merge");
+ }
+ };
+
+
+ my @refs = $git->command('for-each-ref',
+ '--format=%(refname) %(objectname)', "refs/remotes/$name");
+ for (@refs) {
+ ($ref, $object) = split;
+ $git->command(qw(update-ref -d), $ref, $object);
+ }
+}
+
sub add_usage {
print STDERR "Usage: git remote add [-f] [-t track]* [-m master] <name> <url>\n";
exit(1);
}
add_remote($ARGV[1], $ARGV[2], \%opts);
}
+elsif ($ARGV[0] eq 'rm') {
+ if (@ARGV <= 1) {
+ print STDERR "Usage: git remote rm <remote>\n";
+ }
+ else {
+ rm_remote($ARGV[1]);
+ }
+ exit(1);
+}
else {
print STDERR "Usage: git remote\n";
print STDERR " git remote add <name> <url>\n";
+ print STDERR " git remote rm <name>\n";
print STDERR " git remote show <name>\n";
print STDERR " git remote prune <name>\n";
print STDERR " git remote update [group]\n";