threads / patch / 44969

patchRetire the `relink` command

Subject: [PATCH] Retire the `relink` command

## tl;dr

5 messages between Jan 25, 2017 and Jan 26, 2017. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Johannes Schindelin· Jan 25, 2017, 16:58 UTC · lore

Back in the olden days, when all objects were loose and rubber boots were made out of wood, it made sense to try to share (immutable) objects between repositories.

Ever since the arrival of pack files, it is but an anachronism.

Let's move the script to the contrib/examples/ directory and no longer offer it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
Published-As: https://github.com/dscho/git/releases/tag/retire-relink-v1
Fetch-It-Via: git fetch https://github.com/dscho/git retire-relink-v1
 .gitignore                                          | 1 -
 Makefile                                            | 1 -
 command-list.txt                                    | 1 -
 git-relink.perl => contrib/examples/git-relink.perl | 0
 {Documentation => contrib/examples}/git-relink.txt  | 0
 5 files changed, 3 deletions(-)
 rename git-relink.perl => contrib/examples/git-relink.perl (100%)
 rename {Documentation => contrib/examples}/git-relink.txt (100%)
Show changes to 5 files +0 −3

.gitignore, Makefile, command-list.txt, git-relink.perl, Documentation/git-relink.txt

diff --git a/.gitignore b/.gitignore
index 6722f78f9a..b1020b875f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -118,7 +118,6 @@
 /git-rebase--merge
 /git-receive-pack
 /git-reflog
-/git-relink
 /git-remote
 /git-remote-http
 /git-remote-https
diff --git a/Makefile b/Makefile
index 27afd0f378..658ac19247 100644
--- a/Makefile
+++ b/Makefile
@@ -527,7 +527,6 @@ SCRIPT_PERL += git-archimport.perl
 SCRIPT_PERL += git-cvsexportcommit.perl
 SCRIPT_PERL += git-cvsimport.perl
 SCRIPT_PERL += git-cvsserver.perl
-SCRIPT_PERL += git-relink.perl
 SCRIPT_PERL += git-send-email.perl
 SCRIPT_PERL += git-svn.perl
 
diff --git a/command-list.txt b/command-list.txt
index 2a94137bbb..a1fad28fd8 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -107,7 +107,6 @@ git-read-tree                           plumbingmanipulators
 git-rebase                              mainporcelain           history
 git-receive-pack                        synchelpers
 git-reflog                              ancillarymanipulators
-git-relink                              ancillarymanipulators
 git-remote                              ancillarymanipulators
 git-repack                              ancillarymanipulators
 git-replace                             ancillarymanipulators
diff --git a/git-relink.perl b/contrib/examples/git-relink.perl
similarity index 100%
rename from git-relink.perl
rename to contrib/examples/git-relink.perl
diff --git a/Documentation/git-relink.txt b/contrib/examples/git-relink.txt
similarity index 100%
rename from Documentation/git-relink.txt
rename to contrib/examples/git-relink.txt

base-commit: 4e59582ff70d299f5a88449891e78d15b4b3fabe
-- 
2.11.1.windows.prerelease.2.3.g7f3eb74
Jeff King· Jan 25, 2017, 21:13 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Retire the `relink` command

On Wed, Jan 25, 2017 at 05:58:57PM +0100, Johannes Schindelin wrote:
Show 5 quoted lines
> Back in the olden days, when all objects were loose and rubber boots were
> made out of wood, it made sense to try to share (immutable) objects
> between repositories.
> 
> Ever since the arrival of pack files, it is but an anachronism.

Yes, this is a good idea. I could _almost_ see its utility if it linked packfiles, too, but then it is very unlikely that two repos have the exact same packfile.

> Let's move the script to the contrib/examples/ directory and no longer
> offer it.

I am OK with this, but perhaps we should go even further and just delete it entirely. The point of contrib/examples is to show people "this is how you could script plumbing to implement a porcelain". But this script does not call a single plumbing script. It just looks directly in objects/, which is probably not something we would want to encourage. :)

-Peff
Junio C Hamano· Jan 25, 2017, 21:41 UTC · re: Jeff King · lore

Re: [PATCH] Retire the `relink` command

Jeff King <peff@peff.net> writes:
Show 20 quoted lines
> On Wed, Jan 25, 2017 at 05:58:57PM +0100, Johannes Schindelin wrote:
>
>> Back in the olden days, when all objects were loose and rubber boots were
>> made out of wood, it made sense to try to share (immutable) objects
>> between repositories.
>> 
>> Ever since the arrival of pack files, it is but an anachronism.
>
> Yes, this is a good idea. I could _almost_ see its utility if it linked
> packfiles, too, but then it is very unlikely that two repos have the
> exact same packfile.
>
>> Let's move the script to the contrib/examples/ directory and no longer
>> offer it.
>
> I am OK with this, but perhaps we should go even further and just delete
> it entirely. The point of contrib/examples is to show people "this is
> how you could script plumbing to implement a porcelain". But this script
> does not call a single plumbing script. It just looks directly in
> objects/, which is probably not something we would want to encourage. :)

Yeah. I am OK with this patch as the first step of "first move to contrib and then remove" two step process, but I suspect we may forget to follow through.

Eric Wong· Jan 25, 2017, 23:20 UTC · re: Johannes Schindelin · lore

Re: [PATCH] Retire the `relink` command

Johannes Schindelin <johannes.schindelin@gmx.de> wrote:
Show 8 quoted lines
> Back in the olden days, when all objects were loose and rubber boots were
> made out of wood, it made sense to try to share (immutable) objects
> between repositories.
> 
> Ever since the arrival of pack files, it is but an anachronism.
> 
> Let's move the script to the contrib/examples/ directory and no longer
> offer it.

On the other hand, we have no idea if there are still people using it for whatever reason...

I suggest we have a deprecation period where:
1) there is warning message when it's run
2) a note in the manpage indicating it's to-be-removed
3) ...then wait a few distro LTS cycles to remove it entirely
Johannes Schindelin· Jan 26, 2017, 12:17 UTC · re: Eric Wong · lore

Re: [PATCH] Retire the `relink` command

Hi Eric,
On Wed, 25 Jan 2017, Eric Wong wrote:
Show 14 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> wrote:
> > Back in the olden days, when all objects were loose and rubber boots
> > were made out of wood, it made sense to try to share (immutable)
> > objects between repositories.
> > 
> > Ever since the arrival of pack files, it is but an anachronism.
> > 
> > Let's move the script to the contrib/examples/ directory and no longer
> > offer it.
> 
> On the other hand, we have no idea if there are still people
> using it for whatever reason...
> 
> I suggest we have a deprecation period where:

I would be fine with a deprecation phase, but that decision is solely on Junio's shoulders.

Ciao, Johannes

← back to recent threads