git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Robin Rosenberg <robin.rosenberg.lists@dewire.com>
Subject: Re: Adding Git to Better SCM Initiative : Comparison
Date: Thu, 29 Nov 2007 03:26:12 +0100	[thread overview]
Message-ID: <200711290326.13822.jnareb@gmail.com> (raw)
In-Reply-To: <200711282339.59938.jnareb@gmail.com>

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

  parent reply	other threads:[~2007-11-29  2:26 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-28 22:39 Adding Git to Better SCM Initiative : Comparison Jakub Narebski
2007-11-29  1:48 ` Robin Rosenberg
2007-11-29  7:17   ` Jan Hudec
2007-11-29  2:26 ` Jakub Narebski [this message]
2007-11-29 20:07   ` Alex Riesen
2007-11-30  0:18     ` Jakub Narebski
2007-11-30  1:26       ` Johan Herland
2007-11-30  1:53         ` Jakub Narebski
2007-11-30  7:16       ` Alex Riesen
2007-11-30 18:34     ` Jan Hudec
2007-12-03 19:57 ` Jakub Narebski
  -- strict thread matches above, loose matches on Subject: below --
2007-12-10 12:57 Jakub Narebski
2007-12-10 13:09 ` Eyvind Bernhardsen
2007-12-10 13:20   ` Jakub Narebski
2007-12-10 14:33 ` David Kastrup
2007-12-10 14:49 ` Florian Weimer
2007-12-10 15:23   ` Johannes Schindelin
2007-12-10 15:36     ` Florian Weimer
2007-12-10 15:47   ` Jakub Narebski
2007-12-10 16:28     ` Florian Weimer
2007-12-10 16:38   ` Linus Torvalds
2007-12-10 16:50   ` Chris Shoemaker
2007-12-10 17:21     ` Jakub Narebski
     [not found] ` <200801071057.27710.shlomif@iglu.org.il>
2008-01-13  0:44   ` Jakub Narebski
2008-01-14  0:14     ` Dmitry Potapov
2008-01-14  0:31       ` Jakub Narebski
2008-01-14  6:58         ` Dmitry Potapov
2008-01-14 12:14           ` Jakub Narebski
2008-01-13 15:05 linux
2008-01-13 15:16 ` Matthieu Moy
2008-01-13 16:25   ` Jakub Narebski
2008-01-13 18:42   ` linux
2008-01-13 19:20     ` linux

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=200711290326.13822.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=robin.rosenberg.lists@dewire.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).