From: Jakub Narebski <jnareb@gmail.com>
To: Gerhard Wiesinger <lists@wiesinger.com>
Cc: git@vger.kernel.org
Subject: Re: Metadata and checkin file date
Date: Tue, 27 Apr 2010 22:55:47 +0200 [thread overview]
Message-ID: <201004272255.47394.jnareb@gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.00.1004272139080.5630@bbs.intern>
On Tue, 27 Apr 2010, Gerhard Wiesinger wrote:
> On Tue, 27 Apr 2010, Jakub Narebski wrote:
>> Gerhard Wiesinger <lists@wiesinger.com> writes:
>>
>>> I'm new to git and I'm looking for the following features:
>>> 1.) Metadata for
>>> a.) directory versioning (e.g. add/rm, mv)
>>> b.) rights (basic: chmod, chow, chgrp, extended: extended
>>> attributes like ACLs and selinux), necessary for versioning e.g. /etc
>>> 2.) Original file dates (checkin date) on clone and pull (and not
>>> checkout date)
>>>
>>> Is this possible? Any plans if missing?
>>
>> Git is distributed version control system (DVCS), not a backup system.
>> It is used mainly for distributed development of programs. Therefore
>> it supports natively only those parts of metadata that make sense for
>> VCS, namely symlinks (with workaround for filesystems that do not have
>> support for symbolic links) and the executable permission for files.
>>
>> File ownership does not make sense for VCS, as other people that clone
>> your repository do not have the same set of users that you have, and
>> might not have the same set of groups that you have. Neverthemind that
>> their filesystem might not support notion of file ownership, not only
>> do not have support for extended attributes and the like.
>
> I would suggest that only with special switches like --preserve-chmod
> --preserver-owner --preserve-group , etc. where one can guarantee user,
> groups, etc. See also my second post for arguments.
Do *one* thing, and do it well.
Note that in 'tree' object (used to represent directories, and holding
names and executable permission of files) there is simply no place for
full ownership, for timestamp(s), for extended attributes. And changing
repository format for such minor fringe usage is out of the question for
Git.
So you would have to use some .gitmetadata file to store additional
metadata. And then you can utilize hooks mechanism, i.e. add this
functionality to extra tool like etckeeper or IsiSetup, just like patch
management is done with extra tools like StGit, Guilt or TopGit.
>> If you really, really need this, you can use additional tools to
>> preserve metadata, like Metastore or git-cache-meta, or even ready
>> tools that use Git as bckend like IsiSetup or bup (well, bup use
>> git package format, not git itself...), see this Git Wiki page:
>> https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools
>
> Will have a look at them.
--
Jakub Narebski
Poland
prev parent reply other threads:[~2010-04-27 21:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 5:23 Metadata and checkin file date Gerhard Wiesinger
2010-04-27 9:22 ` Andreas Ericsson
2010-04-27 19:38 ` Gerhard Wiesinger
2010-04-27 19:47 ` Andreas Ericsson
2010-04-27 20:00 ` Gerhard Wiesinger
2010-04-27 21:25 ` Jakub Narebski
2010-04-27 21:18 ` Jakub Narebski
2010-04-27 9:35 ` Jakub Narebski
2010-04-27 19:41 ` Gerhard Wiesinger
2010-04-27 20:55 ` Jakub Narebski [this message]
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=201004272255.47394.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=lists@wiesinger.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).