Add --no-check option to git-write-tree.

Signed-off-by: Bryan Larsen <[EMAIL PROTECTED]>
---

 Documentation/git-write-tree.txt |    6 ++++++
 write-tree.c                     |   14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-write-tree.txt b/Documentation/git-write-tree.txt
--- a/Documentation/git-write-tree.txt
+++ b/Documentation/git-write-tree.txt
@@ -10,6 +10,7 @@ git-write-tree - Creates a tree from the
 SYNOPSIS
 --------
 'git-write-tree'
+               [--no-check]

 DESCRIPTION
 -----------
@@ -23,6 +24,11 @@ In order to have that match what is actu
 now, you need to have done a "git-update-cache" phase before you did the
 "git-write-tree".

+OPTIONS
+-------
+--no-check::
+       Normally "git-write-tree" ensures that the objects referenced by the
+       directory exist in the object database.  This option disabled this 
check.



diff --git a/write-tree.c b/write-tree.c
--- a/write-tree.c
+++ b/write-tree.c
@@ -5,6 +5,8 @@
  */
 #include "cache.h"

+static int no_check = 0;
+
 static int check_valid_sha1(unsigned char *sha1)
 {
        int ret;
@@ -61,7 +63,7 @@ static int write_tree(struct cache_entry
                        sha1 = subdir_sha1;
                }

-               if (check_valid_sha1(sha1) < 0)
+               if (!no_check && check_valid_sha1(sha1) < 0)
                        exit(1);

                entrylen = pathlen - baselen;
@@ -86,6 +88,16 @@ int main(int argc, char **argv)
        int i, funny;
        int entries = read_cache();
        unsigned char sha1[20];
+       
+       if (argc==2) {
+               if (!strcmp(argv[1], "--no-check"))
+                       no_check = 1;
+               else
+                       die("unknown option %s", argv[1]);
+       }
+       
+       if (argc>2)
+               die("too many options");

        if (entries < 0)
                die("git-write-tree: error reading cache");



-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to