Re: [dev] [suckless] Migration to git

From: Chris Down <chris_AT_chrisdown.name>
Date: Thu, 14 Feb 2013 11:07:36 +0800

Are you kidding me? Are you unaware of git rebase?

On 14 February 2013 10:01, Sam Watkins <sam_AT_nipl.net> wrote:

> > I've been working with git lately, trying to do some unusual things,
> > and I need to say this is one of the least suckless pieces of software
> > I've ever worked with. It's complex, obscure, inconsistent, quirky...
>
> > tell what you did
>
> Ok, here is one day in the life of messing about with git.
>
>
> Let's say you wanted to get rid of all history from a repo, just keep
> the current commit. Git lets us rewrite history, so this should be
> easy, right? Wrong. I won't tell you how long it took to find this
> weird technique:
>
> #!/bin/sh -e
> new_root_hash=`git rev-parse HEAD`
> echo "$new_root_hash" >.git/info/grafts
> git filter-branch -f
> rm .git/info/grafts
>
> At least it runs quickly.
>
>
> Let's say you want to garbage collect your repo after getting rid of
> that unwanted history...
>
> git gc
>
> whoops, it does not work.
>
> final hacky 'solution' (after quite some research and experiment):
>
> #!/bin/sh -ev
> git remote rm origin || true
> git for-each-ref --format="%(refname)" refs/original/ | xargs -n1
> --no-run-if-empty git update-ref -d
> (
> cd .git
> rm -rf refs/remotes/ refs/original/ *_HEAD logs/
> )
> git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c
> gc.rerereresolved=0 -c gc.rerereunresolved=0 -c gc.pruneExpire=now gc "$_AT_"
>
>
> But ordinary things are famously weird in git, also.
>
>
>
Received on Thu Feb 14 2013 - 04:07:36 CET

This archive was generated by hypermail 2.3.0 : Thu Feb 21 2013 - 19:21:10 CET