add --no-check option to git-write-tree
PATCH 1/1 add --no-check option to git-write-tree
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(-)
Documentation/git-write-tree.txt +6 -0
@@ -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.
write-tree.c +13 -1
@@ -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" );
Quoted 2 lines · Bryan Larsen
Add --no-check option to git-write-tree.
I like almost all of these patches (well, the ones relevant to core git, I'll not speak for Pasky on cogito), although I'd actually prefer your "index_fd()" info-only flag to work the other way around: make it a flag to say whether to update the object directory or not (ie "0" means info only, and "1" means the current "update object directory" - and name it accordingly, of course).
However, your mailer - apparently
User-Agent: Mozilla Thunderbird 1.0.2 (Macintosh/20050317)
is totally broken and does strange white-space corruption, so none of the patches would apply.
So can you fix that up and re-send (and cc me on the git part)?
Linus