Re: Identify Commit ID from an Extracted Source Snapshot
- From
Sam Vilain <sam@vilain.net>
- Date
- Feb 16, 2012, 23:19 UTC
- Message-ID
- <4F3D8EFF.9000806@vilain.net>
- In-Reply-To
- <4F3D8A7C.2020400@elegosoft.com>
On 2/16/12 3:00 PM, Michael Schubert wrote:
Show 18 quoted lines
> On 02/16/2012 11:06 PM, James Walmsley wrote: >> I couldn't find this on google, and I have no idea if its even >> possible. I have several zip files from previous versions of my >> source code. (I imported svn into git). I would like to add TAGS to >> git which represent the versions based on the files in my zip >> archives. >> >> Does anyone know how to do this? > > If it's just about providing the ancient code together with the > (imported) more recent history from SVN, you could create an extra > orphan branch for each zip packet, add the files, commit and > eventually tag. > > If your question is more like "how do I tell git to find out where > this old code fits in my history and eventually place it there", > the answer is: you cannot do it. No VCS will do this and especially > not Git.
Once you've got a tree in git which corresponds to the contents of the zip file, you can use git diff --stat TREEID COMMITID
You can get the commitid by obtaining the most recent timestamp for a file within the archive, then just using git rev-list --all --since=... --until=... to get a window of commit IDs, and hunt around until you find the one with the smallest diff.
It's hardly a straightforward thing, usually because the contents of the zip file never quite match the exact contents of source control—think autoconf and other files generated for distribution but not stored in the history. So you need to use a fuzzy search.
Sam