Re: What a modern collaboration toolkit looks like

From:

Miles Bader

Subject:

Re: What a modern collaboration toolkit looks like

Date:

Thu, 03 Jan 2008 19:16:57 +0900

Richard Stallman <address@hidden> writes:
> I am having trouble understanding what it _means_ to say that you can
> do a "commit" into your own repository. That must be something very
> different from a "commit" in CVS terms. Perhaps it is so different that
> the two are not comparable at all.
Basically, in git (and many other systems), _every working directory_
contains its own repository, stored in the ".git" subdirectory. .git
contains the entire history of the project, which is why you can examine
log entries and old versions without being connected; it is highly
compressed so for instance in the case of Emacs, .git takes only a
little more space than the source tree itself.
When you commit using "git commit", you're committing to the .git
subdirectory. So "git commit" means "WD changes -> .git", a local
operation.
Git then contains commands to merge between repositories (either
"pushing" or "pulling" to/from another repository). You can push or
pull to remote repositories as well as local ones (a remote repository,
might be like "ssh://git.sv.gnu.org/srv/git/emacs.git", whereas local
repository is simply another git working directory [containing it's own
.git subdir]).
So perhaps you hack all day, periodically making commits (using "git
commit") which store your changes into the .git subdir. Then when you
later connect to the net, you can merge the new changes in .git into the
remote emacs repository on savannah (using "git push").
-Miles
--
Suburbia: where they tear out the trees and then name streets after them.