Linus,
I see you pulled the first two patches of my last series into your tree,
so I know I had your attention briefly. I wanted to see what I can do to
help the rest of the changes get in, so....
I realized last night as I was going to bed that the third patch might
not be accepted because it changes the behaviour slightly, nevermind that
they were - by comparison with today's alternative - plain ugly.
For what it's worth, init-db is practically useless for my package
without the second change in this series. Currently, I've implemented
init-db in pure perl, but I'd like to use init-db.
As such, I started from scratch, and came up with a much simpler
series of patches. Please continue to ignore the previous series, but
consider these new patches in their stead.
New GIT_FILE_DIRECTORY patches will follow seperately.
Cheers,
Zach Welch
Superlucidity Services
These patches were based off commit 4e1778c8ceeaea340a2a7f62fc65736da327ec05.
There are 3 patches in this series:
[PATCH 1/3] init-db.c: cleanup comments
[PATCH 2/3] init-db.c: normalize env var handling.
[PATCH 3/3] init-db.c: create and use safe_create_dir helper
@@ -15,12 +21,6 @@ int main(int argc, char **argv)exit(1);}-/*-*Ifyouwantto,youcansharetheDBareawithanynumberofbranches.-*Thathasadvantages:youcansavespacebysharingalltheSHA1objects.-*Ontheotherhand,itmightjustmakelookupslowerandmessier.You-*bethejudge.-*/sha1_dir=getenv(DB_ENVIRONMENT);if(sha1_dir){structstatst;
@@ -29,9 +29,6 @@ int main(int argc, char **argv)fprintf(stderr,"DB_ENVIRONMENT set to bad directory %s: ",sha1_dir);}-/*-*ThedefaultcaseistohaveaDBpermanageddirectory.-*/sha1_dir=DEFAULT_DB_ENVIRONMENT;fprintf(stderr,"defaulting to private storage area\n");len=strlen(sha1_dir);
This patch applies on top of:
[PATCH 1/3] init-db.c: cleanup comments
init-db.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
Signed-Off-By: Zach Welch <redacted>
Normalize init-db environment variable handling, allowing the creation
of object directories with something other than DEFAULT_DB_ENVIRONMENT.
--- a/init-db.c+++ b/init-db.c
@@ -22,15 +22,10 @@ int main(int argc, char **argv)}sha1_dir=getenv(DB_ENVIRONMENT);-if(sha1_dir){-structstatst;-if(!stat(sha1_dir,&st)&&S_ISDIR(st.st_mode))-return0;-fprintf(stderr,"DB_ENVIRONMENT set to bad directory %s: ",sha1_dir);+if(!sha1_dir){+sha1_dir=DEFAULT_DB_ENVIRONMENT;+fprintf(stderr,"defaulting to local storage area\n");}--sha1_dir=DEFAULT_DB_ENVIRONMENT;-fprintf(stderr,"defaulting to private storage area\n");len=strlen(sha1_dir);if(mkdir(sha1_dir,0755)<0){if(errno!=EEXIST){
@@ -16,10 +26,7 @@char*sha1_dir,*path;intlen,i;-if(mkdir(".git",0755)<0){-perror("unable to create .git directory");-exit(1);-}+safe_create_dir(".git");sha1_dir=getenv(DB_ENVIRONMENT);if(!sha1_dir){
@@ -27,22 +34,13 @@fprintf(stderr,"defaulting to local storage area\n");}len=strlen(sha1_dir);-if(mkdir(sha1_dir,0755)<0){-if(errno!=EEXIST){-perror(sha1_dir);-exit(1);-}-}path=malloc(len+40);memcpy(path,sha1_dir,len);++safe_create_dir(sha1_dir);for(i=0;i<256;i++){sprintf(path+len,"/%02x",i);-if(mkdir(path,0755)<0){-if(errno!=EEXIST){-perror(path);-exit(1);-}-}+safe_create_dir(path);}return0;}
This patch applies on top of:
[PATCH 1/3] init-db.c: cleanup comments
init-db.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
Signed-Off-By: Zach Welch <redacted>
Normalize init-db environment variable handling, allowing the creation
of object directories with something other than DEFAULT_DB_ENVIRONMENT.
--- a/init-db.c+++ b/init-db.c
For future reference, this is in the wrong order.
You should have "checkin comment" first, then "signed-off-by", then a line
with three dashes, and then "administrative trivia".
Ie I'd much rather see the email look like
Normalize init-db environment variable handling, allowing the creation
of object directories with something other than DEFAULT_DB_ENVIRONMENT.
Signed-Off-By: Zach Welch [off-list ref]
---
This patch applies on top of:
[PATCH 1/3] init-db.c: cleanup comments
init-db.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
.. actual patch goes here ..
since otherwise I'll just have to edit it that way. I like seeing the
administrative stuff (diffstat etc), but I don't want to have it in the
commit message, and that's exactly what the "---" marker is for - my tools
will automatically cut it off as if it was a signature (or the beginning
of the patch).
Linus
I feel even more abashed for my earlier scripting faux pas. Would you
like me to resend them to you off-list?
No, I edited them and applied them (the first series, I'll have to think
about the second one).
It's only when there are tens of patches that it gets really old really
quickly to edit things by hand. Three I can handle ;)
Linus