# [RFC/PATCH] pack-refs --all

5 messages from 2006-10-08 to 2006-10-08. Participants: Junio C Hamano, Jakub Narebski, Petr Baudis, Johannes Schindelin.
Thread: https://gitlist.dev/t/5854

## Junio C Hamano, 2006-10-08 08:08

Subject: [RFC/PATCH] pack-refs --all
Message-ID: <7v4pufkz55.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v4pufkz55.fsf%40assigned-by-dhcp.cox.net

```
This changes 'git-pack-refs' to pack only tags by default.
Branches are meant to be updated, either by committing onto it
yourself or tracking remote branches, and packed entries can
become stale easily, but tags are usually "create once and live
forever" and benefit more from packing.

---

 * Likes?  Dislikes?

 builtin-pack-refs.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/builtin-pack-refs.c b/builtin-pack-refs.c
index 23d0d07..1087657 100644
--- a/builtin-pack-refs.c
+++ b/builtin-pack-refs.c
@@ -2,7 +2,7 @@ #include "cache.h"
 #include "refs.h"
 
 static const char builtin_pack_refs_usage[] =
-"git-pack-refs [--prune]";
+"git-pack-refs [--all] [--prune]";
 
 struct ref_to_prune {
 	struct ref_to_prune *next;
@@ -68,6 +68,7 @@ int cmd_pack_refs(int argc, const char *
 {
 	int fd, i;
 	struct pack_refs_cb_data cbdata;
+	int (*iterate_ref)(each_ref_fn, void *) = for_each_tag_ref;
 
 	memset(&cbdata, 0, sizeof(cbdata));
 
@@ -77,6 +78,10 @@ int cmd_pack_refs(int argc, const char *
 			cbdata.prune = 1;
 			continue;
 		}
+		if (!strcmp(arg, "--all")) {
+			iterate_ref = for_each_ref;
+			continue;
+		}
 		/* perhaps other parameters later... */
 		break;
 	}
@@ -88,7 +93,7 @@ int cmd_pack_refs(int argc, const char *
 	if (!cbdata.refs_file)
 		die("unable to create ref-pack file structure (%s)",
 		    strerror(errno));
-	for_each_ref(handle_one_ref, &cbdata);
+	iterate_ref(handle_one_ref, &cbdata);
 	fflush(cbdata.refs_file);
 	fsync(fd);
 	fclose(cbdata.refs_file);

```

## Jakub Narebski, 2006-10-08 10:03

Subject: Re: [RFC/PATCH] pack-refs --all
Message-ID: <egaicb$bb$2@sea.gmane.org>
URL: https://gitlist.dev/e/egaicb%24bb%242%40sea.gmane.org
In-Reply-To: <7v4pufkz55.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano wrote:

>  * Likes?  Dislikes?

+1
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

```

## Petr Baudis, 2006-10-08 10:14

Subject: Re: [RFC/PATCH] pack-refs --all
Message-ID: <20061008101403.GJ20017@pasky.or.cz>
URL: https://gitlist.dev/e/20061008101403.GJ20017%40pasky.or.cz
In-Reply-To: <7v4pufkz55.fsf@assigned-by-dhcp.cox.net>

```
Dear diary, on Sun, Oct 08, 2006 at 10:08:54AM CEST, I got a letter
where Junio C Hamano <junkio@cox.net> said that...
> This changes 'git-pack-refs' to pack only tags by default.
> Branches are meant to be updated, either by committing onto it
> yourself or tracking remote branches, and packed entries can
> become stale easily, but tags are usually "create once and live
> forever" and benefit more from packing.
> 
> ---
> 
>  * Likes?  Dislikes?

Looks much saner, thanks. :-)

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)

```

## Johannes Schindelin, 2006-10-08 12:02

Subject: Re: [RFC/PATCH] pack-refs --all
Message-ID: <Pine.LNX.4.63.0610081401000.14200@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0610081401000.14200%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <7v4pufkz55.fsf@assigned-by-dhcp.cox.net>

```
Hi,

On Sun, 8 Oct 2006, Junio C Hamano wrote:

> This changes 'git-pack-refs' to pack only tags by default.

Since there is not really a high cost attached, why not migrate towards 
only-packed-refs? (Of course, this means that git-update-ref should learn 
to update in-place)?

Ciao,
Dscho

```

## Junio C Hamano, 2006-10-08 19:56

Subject: Re: [RFC/PATCH] pack-refs --all
Message-ID: <7vlknqintp.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vlknqintp.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.63.0610081401000.14200@wbgn013.biozentrum.uni-wuerzburg.de>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Sun, 8 Oct 2006, Junio C Hamano wrote:
>
>> This changes 'git-pack-refs' to pack only tags by default.
>
> Since there is not really a high cost attached, why not migrate towards 
> only-packed-refs? (Of course, this means that git-update-ref should learn 
> to update in-place)?

It indeed is tempting and I was tempted to do that and unify
that with ref-log when we were talking about packed refs before
I saw Linus's initial implementation.

```
