All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Ericsson <ae@op5.se>
To: Roger Leigh <rleigh@codelibre.net>
Cc: Matthias Kestenholz <mk@feinheit.ch>, git@vger.kernel.org
Subject: Re: git and mtime
Date: Thu, 20 Nov 2008 13:48:58 +0100	[thread overview]
Message-ID: <49255CBA.4030709@op5.se> (raw)
In-Reply-To: <20081120112051.GB22787@ravenclaw.codelibre.net>

Roger Leigh wrote:
> On Thu, Nov 20, 2008 at 09:38:28AM +0100, Andreas Ericsson wrote:
>> Matthias Kestenholz wrote:
>>> Hi,
>>>
>>> On 19.11.2008, at 12:37, Roger Leigh wrote:
>>>
>>>> I'm using git to store some generated files, as well as their sources.
>>>> (This is in the context of Debian package development, where entire
>>>> upstream release tarballs are injected into an upstream branch, with
>>>> Debian releases merging the upstream branch, and adding the Debian
>>>> packaging files.)
>>>>
>>>> The upstream release tarballs contains files such as
>>>> - yacc/lex code, and the corresponding generated sources
>>>> - Docbook/XML code, and corresponding HTML/PDF documentation
>>>>
>>>> Would it be possible for git to store the mtime of files in the tree?
>>> This subject comes up from time to time, but the answer always
>>> stays the same: No. The trees are purely defined by their content, and
>>> that's by design.
>>>
>>> If you do not want to regenerate files that are already up-to-date,
>>> you need multiple checkouts of the same repository.
>> Or a make-rule that touches the files you know are up to date. Since you
>> control the build environment, that's probably the simplest solution.
> 
> This is the approach I'm currently taking, since it's simple and
> doesn't require any tool changes.  Ideally, I'd like to avoid
> such hackiness, though.
> 
> I understand all the arguments I've seen in favour of not using the
> mtime of the files when checking out.  They make sense.  However,
> in some situations (such as this), they do not--git is breaking
> something that was previously working.  In my case, I'm
> injecting *release tarballs* into git, and the timestamps on the
> files really do matter.  Regarding issues with branching and branch
> switching, I always do builds from clean in this case.
> 
> If an option was added to git-checkout to restore mtimes, it need
> not be the default, but git could record them on commit and then
> restore them if asked /explicitly/.
> 

You can. The way to ask explicitly right now is to write hooks
that implement the functionality you want. It's not as easy as
setting a config value, but since you'd have to write the patch
to do that anyways (and it's likely it will get dropped), you'd
be better off writing some hooks and submitting them as contrib
stuff.

> For this, and some other uses I have in mind for git, it would be
> great if git could store some more components of the inode
> metadata in the tree, such as:
> - mtime
> - user
> - group
> - full permissions
> - and also allow storage of the full range of file types (i.e.
>   block, character, pipe, etc.)
> 
> This would allow git to be used as the basis for a complete
> functional versioned filesystem (which I'd like to use for my
> lightweight virtualisation tool, schroot, which currently
> uses LVM snapshots for this purpose).
> 

I believe someone else has done some work along the way of
turning git into complete-with-metadata backupsystem before.
Google might prove beneficial.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

  reply	other threads:[~2008-11-20 12:50 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-19 11:37 git and mtime Roger Leigh
2008-11-19 12:22 ` Matthias Kestenholz
2008-11-20  8:38   ` Andreas Ericsson
2008-11-20 11:20     ` Roger Leigh
2008-11-20 12:48       ` Andreas Ericsson [this message]
2008-11-20 13:12         ` Andreas Ericsson
2008-11-19 12:31 ` Johannes Schindelin
2008-11-19 12:37 ` Arafangion
2008-11-19 14:54   ` Matthieu Moy
2008-11-20  8:39     ` Andreas Ericsson
2008-11-20 10:34     ` Johannes Schindelin
2008-11-20 10:53       ` Matthieu Moy
2008-11-19 13:29 ` Jakub Narebski
2008-11-19 16:18 ` Christian MICHON
2008-11-20 10:35   ` Johannes Schindelin
2008-11-20 11:27   ` Roger Leigh
2008-11-20 13:06     ` Andreas Ericsson
2008-11-20 14:15       ` Roger Leigh
2008-11-20 14:50         ` Andreas Ericsson
2008-11-20 15:19           ` Roger Leigh
2008-11-20 15:33             ` Kyle Moffett
2008-11-20 15:37             ` Andreas Ericsson
2008-11-20 18:36             ` Matthias Kestenholz
2008-11-20 13:11     ` Randal L. Schwartz
2008-11-20 13:40       ` Roger Leigh
2008-11-20 17:59     ` Daniel Barkalow
2008-11-20 19:24       ` Joey Hess
2008-11-20 13:21 ` martin f krafft
2008-11-20 13:35   ` Roger Leigh
2008-11-20 13:59     ` martin f krafft
2008-11-20 15:56       ` Samuel Tardieu
2008-11-20 14:07     ` Johannes Schindelin
2008-11-20 14:22       ` Roger Leigh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49255CBA.4030709@op5.se \
    --to=ae@op5.se \
    --cc=git@vger.kernel.org \
    --cc=mk@feinheit.ch \
    --cc=rleigh@codelibre.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.