Add --missing-ok option to git-write.tree.  This option allows a write-tree 
even if the referenced objects are not in the database.

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

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'
+               [--missing-ok]
 
 DESCRIPTION
 -----------
@@ -23,7 +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
+-------
+--missing-ok::
+       Normally "git-write-tree" ensures that the objects referenced by the
+       directory exist in the object database.  This option disables 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 missing_ok = 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 (!missing_ok && 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], "--missing-ok"))
+                       missing_ok = 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