From: Jonathan Nieder Date: Fri, 13 Aug 2010 19:19:54 GMT Subject: Truncating history (Re: Sparse clones) Message-ID: <20100813191954.GA2003@burratino> In-Reply-To: <20100813173147.GB27540@nibiru.local> Hi, Enrico Weigelt wrote: > Fake-roots are special refs that declare certain commit objects > as root-commits). Each time git walks down the history, it checks > whether the current commit is an fake-root and so treats it as > having no ancestor. That should be generic enough let everything > else (commit, push, gc, etc) work as usual. > > The only tricky point is when to update remote fake-roots: the > remote should not cut off my local repo (unless explicitly asked). > So remote fake-roots should only be imported if the local/receiving > side has not the dropped commits anymore. You may be interested in grafts and replacement refs; see git-filter-branch(1) and git-replace(1) for some hints. Good luck, Jonathan