Code

GIT 0.99.9b v0.99.9b
authorJunio C Hamano <junkio@cox.net>
Wed, 2 Nov 2005 05:58:53 +0000 (21:58 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 2 Nov 2005 05:58:53 +0000 (21:58 -0800)
This contains the changes made on the master branch since 0.99.9a.

The workaround for building RPMs has not changed since 0.99.9a,
mainly because I haven't heard back if it was good enough for
kernel.org consumption, or otherwise what changes are needed.

Signed-off-by: Junio C Hamano <junkio@cox.net>
15 files changed:
Documentation/git-am.txt
Documentation/git-cvsimport.txt
Documentation/git-fmt-merge-msg.txt [new file with mode: 0644]
Documentation/git-merge.txt
Documentation/git-pull.txt
Documentation/git.txt
Documentation/tutorial.txt
Makefile
cmd-rename.sh
debian/changelog
git-cvsimport.perl
git-findtags.perl [deleted file]
git-mv.perl
mozilla-sha1/sha1.c
mozilla-sha1/sha1.h

index 704dc514de1daa29a0c72ce336ad6d04ea34d701..e4df4a46ec0461e32865732a33057b284159f001 100644 (file)
@@ -82,8 +82,6 @@ Documentation
 --------------
 Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
 
-This manual page is a stub. You can help the git documentation by expanding it.
-
 GIT
 ---
 Part of the gitlink:git[7] suite
index f5248c91cbb22901266bba31273a276698fe562c..4b62256a79034c4dcd60e2954e7f5c1b7f3caa81 100644 (file)
@@ -10,7 +10,7 @@ SYNOPSIS
 --------
 'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
                        [ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
-                       [ -C <git_repository> ] [ -i ] [ -k ]
+                       [ -C <git_repository> ] [ -i ] [ -P <file> ] [ -k ]
                        [ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]
 
 
@@ -60,6 +60,10 @@ the old cvs2git tool.
 +
 If you need to pass multiple options, separate them with a comma.
 
+-P:: <cvsps-output-file>
+       Instead of calling cvsps, read the provided cvsps output file. Useful
+       for debugging or when cvsps is being handled outside cvsimport.
+
 -m::    
        Attempt to detect merges based on the commit message. This option
        will enable default regexes that try to capture the name source 
diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
new file mode 100644 (file)
index 0000000..a70eb39
--- /dev/null
@@ -0,0 +1,39 @@
+git-fmt-merge-msg(1)
+====================
+
+NAME
+----
+git-fmt-merge-msg - Produce a merge commit message
+
+
+SYNOPSIS
+--------
+'git-fmt-merge-msg' <$GIT_DIR/FETCH_HEAD
+
+DESCRIPTION
+-----------
+Takes the list of merged objects on stdin and produces a suitable
+commit message to be used for the merge commit, usually to be
+passed as the '<merge-message>' argument of `git-merge`.
+
+This script is intended mostly for internal use by scripts
+automatically invoking `git-merge`.
+
+
+SEE ALSO
+--------
+gitlink:git-merge[1]
+
+
+Author
+------
+Written by Junio C Hamano <junkio@cox.net>
+
+Documentation
+--------------
+Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
index a007a8b15a1a4598aabd844d09e45db65db6e3a5..8c9c4d87e359041b8f10b2ec5f13ee4217fae3bc 100644 (file)
@@ -28,6 +28,11 @@ OPTIONS
        there is no `-s` option, built-in list of strategies is
        used instead.
 
+<msg>::
+       The commit message to be used for the merge commit (in case
+       it is created). The `git-fmt-merge-msg` script can be used
+       to give a good default for automated `git-merge` invocations.
+
 <head>::
        our branch head commit.
 
@@ -37,6 +42,11 @@ OPTIONS
        obviously means you are trying an Octopus.
 
 
+SEE ALSO
+--------
+gitlink:git-fmt-merge-msg[1]
+
+
 Author
 ------
 Written by Junio C Hamano <junkio@cox.net>
index bae05dee99ebaa7866885d3d8a36cde81e5d700e..cef4c0ae38d46869420ca6d317e24b279bcb6d9d 100644 (file)
@@ -19,6 +19,9 @@ When only one ref is downloaded, runs 'git resolve' to merge it
 into the local HEAD.  Otherwise uses 'git octopus' to merge them
 into the local HEAD.
 
+Note that you can use '.' (current directory) as the
+<repository> to pull from the local repository -- this is useful
+when merging local branches into the current branch.
 
 OPTIONS
 -------
index 59d0dc87606548ee02d60936b9cb872b1add3f8b..2f9622f5ac492140427e752ebd163cb22d003d8d 100644 (file)
@@ -60,7 +60,6 @@ gitlink:git-apply[1]::
 
 gitlink:git-checkout-index[1]::
        Copy files from the cache to the working directory
-       Previously this command was known as git-checkout-cache.
 
 gitlink:git-commit-tree[1]::
        Creates a new commit object
@@ -76,7 +75,6 @@ gitlink:git-init-db[1]::
 
 gitlink:git-merge-index[1]::
        Runs a merge for files needing merging
-       Previously this command was known as git-merge-cache.
 
 gitlink:git-mktag[1]::
        Creates a tag object
@@ -95,7 +93,6 @@ gitlink:git-unpack-objects[1]::
 
 gitlink:git-update-index[1]::
        Modifies the index or directory cache
-       Previously this command was known as git-update-cache.
 
 gitlink:git-write-tree[1]::
        Creates a tree from the current cache
@@ -109,7 +106,6 @@ gitlink:git-cat-file[1]::
 
 gitlink:git-diff-index[1]::
        Compares content and mode of blobs between the cache and repository
-       Previously this command was known as git-diff-cache.
 
 gitlink:git-diff-files[1]::
        Compares files in the working tree and the cache
@@ -122,7 +118,6 @@ gitlink:git-diff-tree[1]::
 
 gitlink:git-fsck-objects[1]::
        Verifies the connectivity and validity of the objects in the database
-       Previously this command was known as git-fsck-cache.
 
 gitlink:git-ls-files[1]::
        Information about files in the cache/working directory
@@ -170,11 +165,9 @@ gitlink:git-fetch-pack[1]::
 
 gitlink:git-http-fetch[1]::
        Downloads a remote git repository via HTTP
-       Previously this command was known as git-http-pull.
 
 gitlink:git-local-fetch[1]::
        Duplicates another git repository on a local system
-       Previously this command was known as git-local-pull.
 
 gitlink:git-peek-remote[1]::
        Lists references on a remote repository using upload-pack protocol.
@@ -190,11 +183,9 @@ gitlink:git-shell[1]::
 
 gitlink:git-ssh-fetch[1]::
        Pulls from a remote repository over ssh connection
-       Previously this command was known as git-ssh-pull.
 
 gitlink:git-ssh-upload[1]::
        Helper "server-side" program used by git-ssh-fetch
-       Previously this command was known as git-ssh-push.
 
 gitlink:git-update-server-info[1]::
        Updates auxiliary information on a dumb server to help
@@ -210,7 +201,6 @@ Porcelain-ish Commands
 
 gitlink:git-add[1]::
        Add paths to the index file.
-       Previously this command was known as git-add-script.
 
 gitlink:git-am[1]::
        Apply patches from a mailbox, but cooler.
@@ -220,50 +210,39 @@ gitlink:git-applymbox[1]::
 
 gitlink:git-bisect[1]::
        Find the change that introduced a bug.
-       Previously this command was known as git-bisect-script.
 
 gitlink:git-branch[1]::
        Create and Show branches.
-       Previously this command was known as git-branch-script.
 
 gitlink:git-checkout[1]::
        Checkout and switch to a branch.
-       Previously this command was known as git-checkout-script.
 
 gitlink:git-cherry-pick[1]::
        Cherry-pick the effect of an existing commit.
-       Previously this command was known as git-cherry-pick-script.
 
 gitlink:git-clone[1]::
        Clones a repository into a new directory.
-       Previously this command was known as git-clone-script.
 
 gitlink:git-commit[1]::
        Record changes to the repository.
-       Previously this command was known as git-commit-script.
 
 gitlink:git-diff[1]::
        Show changes between commits, commit and working tree, etc.
-       Previously this command was known as git-diff-script.
 
 gitlink:git-fetch[1]::
        Download from a remote repository via various protocols.
-       Previously this command was known as git-fetch-script.
 
 gitlink:git-format-patch[1]::
        Prepare patches for e-mail submission.
-       Previously this command was known as git-format-patch-script.
 
 gitlink:git-grep[1]::
        Print lines matching a pattern
 
 gitlink:git-log[1]::
        Shows commit logs.
-       Previously this command was known as git-log-script.
 
 gitlink:git-ls-remote[1]::
        Shows references in a remote or local repository.
-       Previously this command was known as git-ls-remote-script.
 
 gitlink:git-merge[1]::
        Grand unified merge driver.
@@ -273,39 +252,30 @@ gitlink:git-mv[1]::
 
 gitlink:git-octopus[1]::
        Merge more than two commits.
-       Previously this command was known as git-octopus-script.
 
 gitlink:git-pull[1]::
        Fetch from and merge with a remote repository.
-       Previously this command was known as git-pull-script.
 
 gitlink:git-push[1]::
        Update remote refs along with associated objects.
-       Previously this command was known as git-push-script.
 
 gitlink:git-rebase[1]::
        Rebase local commits to new upstream head.
-       Previously this command was known as git-rebase-script.
 
 gitlink:git-rename[1]::
        Rename files and directories.
-       Previously this command was known as git-rename-script.
 
 gitlink:git-repack[1]::
        Pack unpacked objects in a repository.
-       Previously this command was known as git-repack-script.
 
 gitlink:git-reset[1]::
        Reset current HEAD to the specified state.
-       Previously this command was known as git-reset-script.
 
 gitlink:git-resolve[1]::
        Merge two commits.
-       Previously this command was known as git-resolve-script.
 
 gitlink:git-revert[1]::
        Revert an existing commit.
-       Previously this command was known as git-revert-script.
 
 gitlink:git-shortlog[1]::
        Summarizes 'git log' output.
@@ -315,11 +285,9 @@ gitlink:git-show-branch[1]::
 
 gitlink:git-status[1]::
        Shows the working tree status.
-       Previously this command was known as git-status-script.
 
 gitlink:git-verify-tag[1]::
        Check the GPG signature of tag.
-       Previously this command was known as git-verify-tag-script.
 
 gitlink:git-whatchanged[1]::
        Shows commit logs and differences they introduce.
@@ -334,41 +302,33 @@ gitlink:git-applypatch[1]::
 
 gitlink:git-archimport[1]::
        Import an arch repository into git.
-       Previously this command was known as git-archimport-script.
 
 gitlink:git-convert-objects[1]::
        Converts old-style git repository
-       Previously this command was known as git-convert-cache.
 
 gitlink:git-cvsimport[1]::
        Salvage your data out of another SCM people love to hate.
-       Previously this command was known as git-cvsimport-script.
 
 gitlink:git-merge-one-file[1]::
        The standard helper program to use with "git-merge-index"
-       Previously this command was known as git-merge-one-file-script.
 
 gitlink:git-prune[1]::
        Prunes all unreachable objects from the object database
-       Previously this command was known as git-prune-script.
 
 gitlink:git-relink[1]::
        Hardlink common objects in local repositories.
-       Previously this command was known as git-relink-script.
 
 gitlink:git-svnimport[1]::
        Import a SVN repository into git.
 
 gitlink:git-sh-setup[1]::
        Common git shell script setup code.
-       Previously this command was known as git-sh-setup-script.
 
 gitlink:git-symbolic-ref[1]::
        Read and modify symbolic refs
 
 gitlink:git-tag[1]::
        An example script to create a tag object signed with GPG
-       Previously this command was known as git-tag-script.
 
 gitlink:git-update-ref[1]::
        Update the object name stored in a ref safely.
@@ -384,7 +344,6 @@ gitlink:git-cherry[1]::
 
 gitlink:git-count-objects[1]::
        Count unpacked number of objects and their disk consumption.
-       Previously this command was known as git-count-objects-script.
 
 gitlink:git-daemon[1]::
        A really simple server for git repositories.
@@ -403,18 +362,15 @@ gitlink:git-patch-id[1]::
 
 gitlink:git-parse-remote[1]::
        Routines to help parsing $GIT_DIR/remotes/
-       Previously this command was known as git-parse-remote-script.
 
 gitlink:git-request-pull[1]::
        git-request-pull.
-       Previously this command was known as git-request-pull-script.
 
 gitlink:git-rev-parse[1]::
        Pick out and massage parameters.
 
 gitlink:git-send-email[1]::
        Send patch e-mails out of "format-patch --mbox" output.
-       Previously this command was known as git-send-email-script.
 
 gitlink:git-symbolic-refs[1]::
        Read and modify symbolic refs.
index b9f737e9640a4a4a5c9554c8d6bdd1b7847ec5b2..20a4cb1df40004ce3f73e52bae5fc71522bacaf1 100644 (file)
@@ -1028,7 +1028,9 @@ multiple working trees, but disk space is cheap these days.
 
 [NOTE]
 You could even pull from your own repository by
-giving '.' as <remote-repository> parameter to `git pull`.
+giving '.' as <remote-repository> parameter to `git pull`.  This
+is useful when you want to merge a local branch (or more, if you
+are making an Octopus) into the current branch.
 
 It is likely that you will be pulling from the same remote
 repository from time to time. As a short hand, you can store
index 5bb51085e1896f3e732d102c3342629c1d19c5a6..5606c83160b972edbd33399d6fd1f49255ae233d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@
 
 # DEFINES += -DUSE_STDEV
 
-GIT_VERSION = 0.99.9a
+GIT_VERSION = 0.99.9b
 
 CFLAGS = -g -O2 -Wall
 ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES)
@@ -94,7 +94,7 @@ SCRIPT_SH = \
 SCRIPT_PERL = \
        git-archimport.perl git-cvsimport.perl git-relink.perl \
        git-rename.perl git-shortlog.perl git-fmt-merge-msg.perl \
-       git-findtags.perl git-svnimport.perl git-mv.perl
+       git-svnimport.perl git-mv.perl
 
 SCRIPT_PYTHON = \
        git-merge-recursive.py
@@ -413,7 +413,6 @@ check:
 install: $(PROGRAMS) $(SCRIPTS)
        $(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(bindir))
        $(INSTALL) $(PROGRAMS) $(SCRIPTS) $(call shellquote,$(DESTDIR)$(bindir))
-       sh ./cmd-rename.sh $(call shellquote,$(DESTDIR)$(bindir))
        $(MAKE) -C templates install
        $(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR))
        $(INSTALL) $(PYMODULES) $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR))
index 34e7f494ed000989276cad428d81a97316e995d3..992493de2218ad86d59e6a60e1ee3e01f5c7221d 100755 (executable)
@@ -1,13 +1,21 @@
 #!/bin/sh
+#
+# If you installed git by hand previously, you may find this
+# script useful to remove the symbolic links that we shipped
+# for backward compatibility.
+#
+# Running this script with the previous installation directory
+# like this:
+#
+# $ cmd-rename.sh /usr/local/bin/
+#
+# would clean them.
+
 d="$1"
 test -d "$d" || exit
 while read old new
 do
        rm -f "$d/$old"
-       if test -f "$d/$new"
-       then
-               ln -s "$new" "$d/$old" || exit
-       fi
 done <<\EOF
 git-add-script git-add
 git-archimport-script  git-archimport
index 7d18483428af0bfda846d22cdf2960d9b03d5b11..ee68af5020ea889a27989ac9e429fed14dded35d 100644 (file)
@@ -1,3 +1,9 @@
+git-core (0.99.9b-0) unstable; urgency=low
+
+  * GIT 0.99.9b
+
+ -- Junio C Hamano <junkio@cox.net>  Tue,  1 Nov 2005 21:39:39 -0800
+
 git-core (0.99.9a-0) unstable; urgency=low
 
   * GIT 0.99.9a
index bbb83fb71cab2d177e98a1c648974bb2bca4607a..7bd9136205f46d4334b7272e6617c0f7f553f5e8 100755 (executable)
@@ -29,7 +29,7 @@ use IPC::Open2;
 $SIG{'PIPE'}="IGNORE";
 $ENV{'TZ'}="UTC";
 
-our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M);
+our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_P, $opt_s,$opt_m,$opt_M);
 
 sub usage() {
        print STDERR <<END;
@@ -41,7 +41,7 @@ END
        exit(1);
 }
 
-getopts("hivmkuo:d:p:C:z:s:M:") or usage();
+getopts("hivmkuo:d:p:C:z:s:M:P:") or usage();
 usage if $opt_h;
 
 @ARGV <= 1 or usage();
@@ -337,6 +337,10 @@ sub file {
        }
        close ($fh);
 
+       if ($res eq '') {
+           die "Looks like the server has gone away while fetching $fn $rev -- exiting!";
+       }
+
        return ($name, $res);
 }
 
@@ -487,11 +491,16 @@ unless($pid) {
        my @opt;
        @opt = split(/,/,$opt_p) if defined $opt_p;
        unshift @opt, '-z', $opt_z if defined $opt_z;
+       unshift @opt, '-q'         unless defined $opt_v;
        unless (defined($opt_p) && $opt_p =~ m/--no-cvs-direct/) {
                push @opt, '--cvs-direct';
        }
-       exec("cvsps",@opt,"-u","-A",'--root',$opt_d,$cvs_tree);
-       die "Could not start cvsps: $!\n";
+       if ($opt_P) {
+           exec("cat", $opt_P);
+       } else {
+           exec("cvsps",@opt,"-u","-A",'--root',$opt_d,$cvs_tree);
+           die "Could not start cvsps: $!\n";
+       }
 }
 
 
diff --git a/git-findtags.perl b/git-findtags.perl
deleted file mode 100755 (executable)
index 745affe..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Copyright (c) 2005 Martin Langhoff
-#
-# Walk the tags and find if they match a commit
-# expects a SHA1 of a commit. Option -t enables 
-# searching trees too.
-#
-
-use strict;
-use File::Basename;
-use File::Find;
-use Getopt::Std;
-
-my $git_dir = $ENV{GIT_DIR} || '.git';
-$git_dir =~ s|/$||; # chomp trailing slash
-
-# options
-our $opt_t;
-getopts("t") || usage();
-
-my @tagfiles   = `find $git_dir/refs/tags -follow -type f`; # haystack
-my $target = shift @ARGV;                     # needle
-unless ($target) {
-    usage();
-}
-
-# drive the processing from the find hook
-# slower, safer (?) than the find utility
-find( { wanted   => \&process,
-       no_chdir => 1,
-       follow   => 1,
-      }, "$git_dir/refs/tags");
-
-
-sub process {
-    my ($dev,$ino,$mode,$nlink,$uid,$gid);
-
-    # process only regular files
-    unless ((($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && -f _) {
-       return 1; # ignored anyway
-    }
-
-    my $tagfile = $_;
-    chomp $tagfile;
-    my $tagname = substr($tagfile, length($git_dir.'/refs/tags/'));
-
-    my $tagid = quickread($tagfile);
-    chomp $tagid;
-
-    # is it just a soft tag?
-    if ($tagid eq $target) {
-       print "$tagname\n";
-       return 1; # done with this tag
-    }
-
-    # grab the first 2 lines (the whole tag could be large)
-    my $tagobj = `git-cat-file tag $tagid | head -n2 `;
-    if ($tagobj =~  m/^type commit$/m) { # only deal with commits
-
-       if ($tagobj =~ m/^object $target$/m) { # match on the commit
-           print "$tagname\n";
-
-       } elsif ( $opt_t &&                      # follow the commit
-                $tagobj =~ m/^object (\S+)$/m) { # and try to match trees
-           my $commitid = $1;
-           my $commitobj = `git-cat-file commit $commitid | head -n1`;
-           chomp $commitobj;
-           $commitobj =~ m/^tree (\S+)$/;
-           my $treeid = $1;
-           if ($target eq $treeid) {
-               print "$tagname\n";
-           }
-       }
-    }
-}
-
-sub quickread {
-    my $file = shift;
-    local $/; # undef: slurp mode
-    open FILE, "<$file"
-       or die "Cannot open $file : $!";
-    my $content = <FILE>;
-    close FILE;
-    return $content;
-}
-
-sub usage {
-       print STDERR <<END;
-Usage: ${\basename $0}     # find tags for a commit or tree
-       [ -t ] <commit-or-tree-sha1>
-END
-       exit(1);
-}
index 17e35b0ac088f83bbcd6d104c77925cd69ded2bb..a21d87eea88d4b1e9a40e4e7f7b836374f566c70 100755 (executable)
@@ -54,6 +54,8 @@ my ($src, $dst, $base, $dstDir);
 my $argCount = scalar @ARGV;
 if (-d $ARGV[$argCount-1]) {
        $dstDir = $ARGV[$argCount-1];
+       # remove any trailing slash
+       $dstDir =~ s/\/$//;
        @srcArgs = @ARGV[0..$argCount-2];
        
        foreach $src (@srcArgs) {
index 7f6fc05e06e30b2f7b3eda6015043f5ebcfd34c1..847531d19f88e420ad68f95f11ab2f1f77876d08 100644 (file)
@@ -56,8 +56,8 @@ void SHA1_Init(SHA_CTX *ctx) {
 }
 
 
-void SHA1_Update(SHA_CTX *ctx, void *_dataIn, int len) {
-  unsigned char *dataIn = _dataIn;
+void SHA1_Update(SHA_CTX *ctx, const void *_dataIn, int len) {
+  const unsigned char *dataIn = _dataIn;
   int i;
 
   /* Read the data into W and process blocks as they get full
index f5decbf43b259232d3ec4a665712df61f946a7f5..5d82afa3bdd21a2855c569a73cf3277b5c6a41bc 100644 (file)
@@ -41,5 +41,5 @@ typedef struct {
 } SHA_CTX;
 
 void SHA1_Init(SHA_CTX *ctx);
-void SHA1_Update(SHA_CTX *ctx, void *dataIn, int len);
+void SHA1_Update(SHA_CTX *ctx, const void *dataIn, int len);
 void SHA1_Final(unsigned char hashout[20], SHA_CTX *ctx);