Jakub Narebski wrote: > To do that, I need to fill in information about Git. Most > of questions / items didn't give much problem, but there > are a few on which I would like your input. By the way, below is patch with the information I have filled. Check out the TO DO items. diff --git a/src/comparison/scm-comparison.xml b/src/comparison/scm-comparison.xml index b459747..6f84190 100644 --- a/src/comparison/scm-comparison.xml +++ b/src/comparison/scm-comparison.xml @@ -38,6 +38,9 @@ TODO: <impl id="darcs"> <name>Darcs</name> </impl> + <impl id="git"> + <name>Git</name> + </impl> <impl id="mercurial"> <name>Mercurial</name> </impl> @@ -106,6 +109,7 @@ TODO: <s id="svk">Commits are atomic.</s> <s id="aegis">Commits are atomic.</s> <s id="bitkeeper">Yes (but need to verify)</s> + <s id="git">Yes.</s> <s id="mercurial">Yes.</s> <s id="monotone">Yes.</s> <s id="opencm">Yes. Commits are atomic.</s> @@ -142,6 +146,11 @@ TODO: <s id="darcs">Yes. Renames are supported.</s> <s id="bitkeeper">Yes. Renames are supported.</s> <s id="aegis">Yes. Renames are supported.</s> + <s id="git"> + N/A. Git does not track renames, but detects renames + and copies. You can follow history of file using + 'git log --follow'. + </s> <s id="mercurial">Yes. Renames are supported.</s> <s id="monotone">Yes. Renames are supported.</s> <s id="opencm">Yes. Renames are supported</s> @@ -214,6 +223,11 @@ TODO: Yes. Copies are supported. </s> <s id="aegis">No. Copies are not supported.</s> + <s id="git"> + N/A. Git does not track copies, but detects renames + and copies. You can follow history of file using + 'git log -C --follow'. + </s> <s id="mercurial">Yes. Copies are supported</s> <s id="monotone">Yes. Copies are supported</s> <s id="opencm">No. Copies are not supported.</s> @@ -267,6 +281,7 @@ TODO: <s id="darcs">Yes.</s> <s id="bitkeeper">Yes.</s> <s id="aegis">Yes.</s> + <s id="git">Yes.</s> <s id="mercurial">Yes.</s> <s id="monotone">Yes.</s> <s id="opencm">No.</s> @@ -313,6 +328,7 @@ TODO: <s id="darcs">Yes.</s> <s id="bitkeeper">Yes.</s> <s id="aegis">Yes.</s> + <s id="git">Yes.</s> <s id="mercurial">Yes.</s> <s id="monotone">Yes.</s> <s id="opencm">No.</s> @@ -373,6 +389,10 @@ TODO: <s id="svk"> Same as subversion. </s> + <s id="git"> + Partial (?). It is possible to lock down repository + (access to branches and tags) using hooks. + </s> <s id="mercurial"> Yes. It is possible to lock down repositories, subdirectories, or files using hooks. @@ -455,6 +475,9 @@ TODO: <s id="darcs"> Yes. Changesets are supported. </s> + <s id="git"> + Yes. Changesets are supported. + </s> <s id="mercurial"> Yes. Changesets are supported. </s> @@ -509,6 +532,7 @@ TODO: <s id="arch">Not in the command line client, but ViewARCH, a web-interface for Arch, has it.</s> <s id="darcs">Yes. (darcs annotate)</s> + <s id="git">Yes. (git blame, git gui blame)</s> <s id="mercurial">Yes. (hg annotate)</s> <s id="monotone">Yes, as of version 0.19.</s> <s id="aegis">Yes. aeannotate</s> @@ -570,6 +594,9 @@ TODO: whole. </s> <s id="aegis">No. All changes are made repository-wide.</s> + <s id="git"> + No. All changes are made repository-wide. + But you can use submodules / subrpoject support for that.</s> <s id="mercurial"> It is possible to commit changes only in a subset of the tree. There are plans for partial checkouts. @@ -636,6 +663,10 @@ TODO: Yes, using "darcs whatsnew". </s> <s id="aegis">Yes. Using aediff</s> + <s id="git"> + Yes. Using git diff. + Note that git uses staging area for commits (index). + </s> <s id="mercurial">Yes. Using hg diff.</s> <s id="monotone">Yes. In a similar fashion to CVS.</s> <s id="opencm">Yes. Using cm diff</s> @@ -681,6 +712,10 @@ TODO: <s id="darcs"> No. </s> + <s id="git"> + No. But you can tag (with description) given contents + of a file (blob). + </s> <s id="mercurial"> No. </s> @@ -782,6 +817,15 @@ TODO: and the client contains a help tool that offers an integrated help system. </s> + <s id="git"> + Medium. There's Git User's Manual, manpages, some + technical documentation and some howtos. All + documentation is also available online in HTML format; + there is additional information (including beginnings + of FAQ) on git wiki. + Nevertheles one of complaints in surveys is insufficient + or fragmented documentation. + </s> <s id="mercurial"> Very good. There's an overview and tutorial on the web site, and integrated help for every command. @@ -894,6 +938,14 @@ TODO: to install the subversion perl bindings and a few modules from CPAN. </s> + <s id="git"> + TO DO. RPMs and deb packages for Linux. msysGit and + Cygwin for Win32 - Git requires POSIX shell, Perl, + and POSIX utilities for some commands (builtin). + Autoconf to generate Makefile configuration; ready + generic configuration for many OS. Compiling docs + requires asciidoc and xmlto toolchain, but prebuild. + </s> <s id="mercurial"> Excellent. Binary packages are available for all popular platforms. Building from source requires @@ -1006,6 +1058,13 @@ TODO: but since the model is different most commands are unique. </s> + <s id="git"> + TO DO. + Tries to follow CVS conventions, but deviates where there + is a different design. + Large command set divided into plumbing (low lewel, to be + used in scripts) and porcelain (high level). + </s> <s id="mercurial"> Tries to follow CVS conventions, but deviates where there is a different design. @@ -1106,6 +1165,10 @@ TODO: There exists some HTTP-functionality, but it is quite limited. </s> + <s id="git"> + Good. Uses HTTPS (with WebDAV) or ssh for push, + HTTP, FTP, ssh or custom protocol for fetch. + </s> <s id="mercurial"> Excellent. Uses HTTP or ssh. Remote access also works safely without locks over read-only network @@ -1203,6 +1266,10 @@ TODO: Very good. Supports many UNIXes, Mac OS X, and Windows, and is written in a portable language. </s> + <s id="git">TO DO. + Good. Portable across all POSIX systems. + There exists Win32 binary using MinGW. + </s> <s id="mercurial"> Excellent. Runs on all platforms supported by Python. Repositories are portable across CPU @@ -1300,6 +1367,9 @@ TODO: is included in the distribution. </s> <s id="aegis">Yes.</s> + <s id="git"> + Yes. The web interface is a bundled component. + Other web interfaces: cgit, wit, git-php</s> <s id="mercurial">Yes. The web interface is a bundled component.</s> <s id="monotone">No.</s> <s id="opencm">No.</s> @@ -1373,6 +1443,11 @@ TODO: <s id="aegis"> There is tkaegis. </s> + <s id="git">RO DO + Bundled history viewer gitk and commit tool git-gui, + both use Tcl/Tk. There is also qgit (Qt) and Giggle + (GTK+). + </s> <s id="mercurial"> History viewing available with hgit extension; check-in extension (hgct) makes committing easier. @@ -1453,6 +1528,7 @@ TODO: GNU GPL (open-source) </s> <s id="svk">Perl License. (open source)</s> + <s id="git">GNU GPL (open source)</s> <s id="mercurial">GNU GPL (open source)</s> <s id="monotone">GNU GPL (open source)</s> <s id="opencm"> -- Jakub Narebski Poland - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html