On Wed, 4 Sep 2013 21:17:39 +0400
Konstantin Khomoutov <flatw...@users.sourceforge.net> wrote:

> > My organization is thinking about Git as a repository for FM+SMGL
> > source (binary) files. We have very minimal requirements:
> > 
> > * ability to check in / check out multiple files at the same time
> Yes.

After re-reading your question with a fresher state of mind, I now
think you might be confused about how DVCS works, and so you might
either reconsider your intention to use a system of this class or
adjust your expectations about it.

A hallmark property of a DVCS is that each repository has the complete
history with all the commits comprising it.  This means commits
(recording new revisions) only ever happen in the repository itself,
and each commit captures a complete state of the project.  This means,
you can't really "check out" several files "from" a DVCS (to some
place), edit them and then "check them in", making a DVCS record a
synthetic commit based on these files only and everything else.

This kind of thing is doable with Subversion, for instance, where you
are able to check out just a single directory out of the whole project
and commit just a single file, making the server synthesize a commit
representing a full project state no one yet have seen locally.

In Git, you can normally (but see below) only check out a single branch
(or a specific commit), and this action does two things:

* The work tree -- a place where the checked out files are stored, and
  where you modify them -- is populated by the state of the *whole*
  project as recorded in the commit being checked out.
* The staging area -- a special place from which a commit is made -- is
  populated with the state of files checked out into the work tree.

That is, normally your work tree has the entire project checked out,
and that's how Git works.

Now there's a special Git feature called "sparse checkouts" [1] -- when
enabled for a repository, it allows you to only check out an explicitly
configured set of directories to not waste the space under the work
tree.  There seems to be no way to only check out specific sets of
separate files using this feature though.


1. http://briancoyner.github.io/blog/2013/06/05/git-sparse-checkout/

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to