git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Committing with past date?

From
Jakub Narebski <jnareb@gmail.com>
Date
Sep 2, 2008, 00:31 UTC
Message-ID
<200809020231.32780.jnareb@gmail.com>
In-Reply-To
<1220286321.5474.6.camel@magnus-desktop>
On Mon, 1 Sep 2008, Magnus Hjorth wrote:
Show 24 quoted lines
> On Sun, 2008-08-31 at 04:12 -0700, Jakub Narebski wrote:
> > Magnus Hjorth <magnus.hjorth@home.se> writes:
> > 
> > > Can someone tell me how to make a git commit with a date other than the
> > > current. I hope there is some easier way than changing the system
> > > clock.. :)
> > 
> > See git(1), section "Environment Variables":
> >    git Commits
> >        GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE,
> >        GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, GIT_COMMITTER_DATE,
> >        EMAIL
> >               see git-commit-tree(1)
> > 
> > or you can use GIT_COMMITTER_IDENT, GIT_AUTHOR_IDENT.  See output
> > of "git var -l" to get form of it.
> >  
> > > I'm trying to port over old version history that I maintained manually
> > > (tarballs and changelogs) into a git repository. 
> > 
> > For that, I think it would be best to take a look at example
> > fast-import script: contrib/fast-import/import-tars.perl;
> > there is equivalent contrib/fast-import/import-zips.py if you
> > perfer either Pyhon over Perl, and/or zips over tarballs.
> Thank you Jakub! 
> 
> Forgot to look in the main git manpage, and that variable wasn't
> mentioned in the git-commit manpage or in any FAQ.. 

Using GIT_AUTHOR_DATE etc. is a bit hacky, so that is why it is not mentioned in git-commit homepage, but only in git-commit-index(1) plumbing homepage, and of course on git(1) which should include _all_ environment variables affecting git execution.

By the way, is there any reason _not_ to use import-tars.perl from
the contrib/fast-import in your case?
 
Show 13 quoted lines
> Now I have a more tricky question.
> 
> The first part of my application history (the stone age) was maintained
> manually using tarballs, but the second part was maintained using CVS
> (the dark ages).
> 
> I have successfully imported the CVS history using git-cvsimport, but
> now I want to add these older revisions that were made with tarballs to
> the same tree, before the CVS revisions. The last tarball and the first
> CVS revision have identical content, and I would like to somehow "glue"
> the histories together.
> 
> Can this be done? 

It can be done for example using grafts. Search git mailing list for graftshistory (or something like that) script, which was used to join using grafts git "current work" Linux repository (started from "scratch"). Then you can check in gitk if everything is all right. If you truly require connected histories, and not being able to locally turn on and off the historical repository, you can always use git-filter-branch which (among others) can turn grafts into true commits.

Linux kernel repo has current work repository, and legacy BitKeeper repository, which one can join together if needed using grafts file (see Documentation/gitrepository-layout.txt

-- 
Jakub Narebski
ShadeHawk on #git
Poland

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on Wsenet and in e-mail?
Previous: Russ DillNext: Magnus Hjorth
Message 5 of 7 in “Committing with past date?”
  1. Magnus HjorthAug 31, 2008
  2. Jakub NarebskiAug 31, 2008
  3. Magnus HjorthSep 1, 2008
  4. Russ DillSep 1, 2008
  5. Jakub NarebskiSep 2, 2008
  6. Magnus HjorthSep 2, 2008
  7. Similar threadZabre, Feb 3, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.