Re: git filter-branch --subdirectory-filter
- From
James Sadler <freshtonic@gmail.com>
- Date
- May 10, 2008, 11:38 UTC
- Message-ID
- <e5e204700805100438v6984593oada51daa4d456fd3@mail.gmail.com>
- In-Reply-To
- <20080510055332.GB11556@sigill.intra.peff.net>
2008/5/10 Jeff King <peff@peff.net>:
Show 22 quoted lines
> On Sat, May 10, 2008 at 01:31:37PM +1000, James Sadler wrote: > >> Does anybody have a script that can take an existing repo, and create >> a new one with garbled-but-equivalent commits? i.e. file and >> directory structure is same with names changed, and there is a one-one >> relationship between lines of text in new repo and old one except the >> lines have been scrambled? It would be a useful tool for distributing >> private repositories for debugging reasons. > > This is only lightly tested, but the script below should do the trick. > It works as an index filter which munges all content in such a way that > a particular line is always given the same replacement text. That means > that diffs will look approximately the same, but will add and remove > lines that say "Fake line XXX" instead of the actual content. > > You can munge the commit messages themselves by just replacing them with > some unique text; in the example below, we just replace them with the > md5sum of the content. > > This will leave the original author, committer, and date, which is > presumably non-proprietary. >
> <snip>
Jeff,
I have run your script on my repo and now have an obfuscated version. When I run 'git filter-branch -subdirectory filter $DIR' on this repo, the same problem occurs, i.e. there are fewer commits remaining than I would expect.
If I place this repo somewhere you can download it, would you be kind enough to take a look? I'll detail the steps required to reproduce in another post.
Thanks,
James