git-off

git off handles large files in git repos
git clone https://noulin.net/git/git-off.git
Log | Files | Refs | README

commit a4a00722c60a3a834f6bcc3a0ce3b15c2f1ba880
parent 62145ffa9063405ac4cabace2a9093d05099d5ee
Author: Remy Noulin <loader2x@gmail.com>
Date:   Sun, 11 Jun 2017 16:32:48 +0200

fix bug due to empty files when running git push in gitoff.c

c/git-off.c | 52 ++++++++++++++++++++++++++--------------------------
c/gitoff.c  | 52 ++++++++++++++++++++++++++--------------------------
2 files changed, 52 insertions(+), 52 deletions(-)

Diffstat:
Mc/git-off.c | 52++++++++++++++++++++++++++--------------------------
Mc/gitoff.c | 52++++++++++++++++++++++++++--------------------------
2 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/c/git-off.c b/c/git-off.c @@ -674,7 +674,7 @@ char *offHelpers_objectPath() { } return(runtimeConfig[objectPath]); } - + char *offHelpers_offStore() { if (runtimeConfig[offStore] == NULL) { @@ -682,7 +682,7 @@ char *offHelpers_offStore() { } return(runtimeConfig[offStore]); } - + char *offHelpers_offHttp() { if (runtimeConfig[offHttp] == NULL) { @@ -690,7 +690,7 @@ char *offHelpers_offHttp() { } return(runtimeConfig[offHttp]); } - + char *offHelpers_offCurlOptions() { if (runtimeConfig[offCurlOptions] == NULL) { @@ -698,7 +698,7 @@ char *offHelpers_offCurlOptions() { } return(runtimeConfig[offCurlOptions]); } - + char *offHelpers_offMode() { if (runtimeConfig[offMode] == NULL) { @@ -706,7 +706,7 @@ char *offHelpers_offMode() { } return(runtimeConfig[offMode]); } - + char *offHelpers_offIntegrity() { if (runtimeConfig[offIntegrity] == NULL) { @@ -714,7 +714,7 @@ char *offHelpers_offIntegrity() { } return(runtimeConfig[offIntegrity]); } - + char *offHelpers_offPem() { if (runtimeConfig[offPem] == NULL) { @@ -722,7 +722,7 @@ char *offHelpers_offPem() { } return(runtimeConfig[offPem]); } - + char *offHelpers_offSshOptions() { if (runtimeConfig[offSshOptions] == NULL) { @@ -730,7 +730,7 @@ char *offHelpers_offSshOptions() { } return(runtimeConfig[offSshOptions]); } - + char *offHelpers_offScpOptions() { if (runtimeConfig[offScpOptions] == NULL) { @@ -738,7 +738,7 @@ char *offHelpers_offScpOptions() { } return(runtimeConfig[offScpOptions]); } - + char *offHelpers_offRsyncOptions() { if (runtimeConfig[offRsyncOptions] == NULL) { @@ -746,7 +746,7 @@ char *offHelpers_offRsyncOptions() { } return(runtimeConfig[offRsyncOptions]); } - + char *offHelpers_offScp() { if (runtimeConfig[offScp] == NULL) { @@ -754,7 +754,7 @@ char *offHelpers_offScp() { } return(runtimeConfig[offScp]); } - + char *offHelpers_offScpUser() { if (runtimeConfig[offScpUser] == NULL) { @@ -762,7 +762,7 @@ char *offHelpers_offScpUser() { } return(runtimeConfig[offScpUser]); } - + char *offHelpers_log() { if (runtimeConfig[log] == NULL) { @@ -771,7 +771,7 @@ char *offHelpers_log() { } return(runtimeConfig[log]); } - + char *offHelpers_getLog() { offHelpers_log(); @@ -783,7 +783,7 @@ char *offHelpers_getLog() { } return(runtimeConfig[log]); } - + char *offHelpers_offConfigAlways() { if (runtimeConfig[offConfigAlways] == NULL) { @@ -799,7 +799,7 @@ char *offHelpers_s3Region() { } return(runtimeConfig[s3Region]); } - + char *offHelpers_s3Bucket() { if (runtimeConfig[s3Bucket] == NULL) { @@ -807,7 +807,7 @@ char *offHelpers_s3Bucket() { } return(runtimeConfig[s3Bucket]); } - + char *offHelpers_transform() { if (runtimeConfig[transform] == NULL) { @@ -815,7 +815,7 @@ char *offHelpers_transform() { } return(runtimeConfig[transform]); } - + char *offHelpers_transformTo() { if (runtimeConfig[transformTo] == NULL) { @@ -823,7 +823,7 @@ char *offHelpers_transformTo() { } return(runtimeConfig[transformTo]); } - + char *offHelpers_transformFrom() { if (runtimeConfig[transformFrom] == NULL) { @@ -831,7 +831,7 @@ char *offHelpers_transformFrom() { } return(runtimeConfig[transformFrom]); } - + char *offHelpers_userAt() { if ((offHelpers_offScpUser() != NULL) && (!strEq(offHelpers_offScpUser(), ""))) { @@ -1644,7 +1644,7 @@ void transport_transformFrom(char *file) { offFile = strdup(basename(file)); offFilePath = offHelpers_getOffFilePath(offFile); - + tmp = malloc(strlen(offHelpers_objectPath()) + strlen(offFilePath[1]) + 1 + 8); sprintf(tmp, "%s/../tmp/%s", offHelpers_objectPath(), offFilePath[1]); d = opendir(tmp); @@ -1872,7 +1872,7 @@ void offCommands_install(gConfig_set_t setF ) { } // create off.store - + if (strEq(runtimeConfig[offMode], "copy")) { mkdirParents(runtimeConfig[offStore]); } @@ -1906,7 +1906,7 @@ void offCommands_track() { char *cmd; char **list; int i; - + cmd = malloc(strlen(externalHelpers[listAttr]) + strlen(offHelpers_gitRepoRoot()) + 1 + 20); sprintf(cmd, "%s `cd %s; git ls-files`", externalHelpers[listAttr], offHelpers_gitRepoRoot()); list = execOut(cmd); @@ -2206,17 +2206,17 @@ void offCommands_push(char *line) { while (objInfoList[oi] != NULL) { char **objInfo; objInfo = split(objInfoList[oi], " "); - + // only lines starting with : (the first line from git diff-tree is the sha) // dont consider deleted files if ((objInfoList[oi][0] == ':') && (objInfo[oiNAME][0] != 'D')) { - + // check header with git cat char *offRef; offRef = exec(gitCat, objInfo[oiOID]); - if (strstr(offRef, offDEFAULTS[offSignatureD]) != NULL) { + if (offRef && (strstr(offRef, offDEFAULTS[offSignatureD]) != NULL)) { // copy git off objects to off.store // found an off reference @@ -2273,7 +2273,7 @@ void offCommands_smudge() { offLogRepo("smudge error: cant get data from stdin."); exit(EXIT_FAILURE); } - + if (strncmp(b, offDEFAULTS[offSignatureD], strlen(offDEFAULTS[offSignatureD])) == 0) { // for git off object, replace git off reference with data from cache or off.store diff --git a/c/gitoff.c b/c/gitoff.c @@ -673,7 +673,7 @@ char *offHelpers_objectPath() { } return(runtimeConfig[objectPath]); } - + char *offHelpers_offStore() { if (runtimeConfig[offStore] == NULL) { @@ -681,7 +681,7 @@ char *offHelpers_offStore() { } return(runtimeConfig[offStore]); } - + char *offHelpers_offHttp() { if (runtimeConfig[offHttp] == NULL) { @@ -689,7 +689,7 @@ char *offHelpers_offHttp() { } return(runtimeConfig[offHttp]); } - + char *offHelpers_offCurlOptions() { if (runtimeConfig[offCurlOptions] == NULL) { @@ -697,7 +697,7 @@ char *offHelpers_offCurlOptions() { } return(runtimeConfig[offCurlOptions]); } - + char *offHelpers_offMode() { if (runtimeConfig[offMode] == NULL) { @@ -705,7 +705,7 @@ char *offHelpers_offMode() { } return(runtimeConfig[offMode]); } - + char *offHelpers_offIntegrity() { if (runtimeConfig[offIntegrity] == NULL) { @@ -713,7 +713,7 @@ char *offHelpers_offIntegrity() { } return(runtimeConfig[offIntegrity]); } - + char *offHelpers_offPem() { if (runtimeConfig[offPem] == NULL) { @@ -721,7 +721,7 @@ char *offHelpers_offPem() { } return(runtimeConfig[offPem]); } - + char *offHelpers_offSshOptions() { if (runtimeConfig[offSshOptions] == NULL) { @@ -729,7 +729,7 @@ char *offHelpers_offSshOptions() { } return(runtimeConfig[offSshOptions]); } - + char *offHelpers_offScpOptions() { if (runtimeConfig[offScpOptions] == NULL) { @@ -737,7 +737,7 @@ char *offHelpers_offScpOptions() { } return(runtimeConfig[offScpOptions]); } - + char *offHelpers_offRsyncOptions() { if (runtimeConfig[offRsyncOptions] == NULL) { @@ -745,7 +745,7 @@ char *offHelpers_offRsyncOptions() { } return(runtimeConfig[offRsyncOptions]); } - + char *offHelpers_offScp() { if (runtimeConfig[offScp] == NULL) { @@ -753,7 +753,7 @@ char *offHelpers_offScp() { } return(runtimeConfig[offScp]); } - + char *offHelpers_offScpUser() { if (runtimeConfig[offScpUser] == NULL) { @@ -761,7 +761,7 @@ char *offHelpers_offScpUser() { } return(runtimeConfig[offScpUser]); } - + char *offHelpers_log() { if (runtimeConfig[log] == NULL) { @@ -770,7 +770,7 @@ char *offHelpers_log() { } return(runtimeConfig[log]); } - + char *offHelpers_getLog() { offHelpers_log(); @@ -782,7 +782,7 @@ char *offHelpers_getLog() { } return(runtimeConfig[log]); } - + char *offHelpers_offConfigAlways() { if (runtimeConfig[offConfigAlways] == NULL) { @@ -798,7 +798,7 @@ char *offHelpers_s3Region() { } return(runtimeConfig[s3Region]); } - + char *offHelpers_s3Bucket() { if (runtimeConfig[s3Bucket] == NULL) { @@ -806,7 +806,7 @@ char *offHelpers_s3Bucket() { } return(runtimeConfig[s3Bucket]); } - + char *offHelpers_transform() { if (runtimeConfig[transform] == NULL) { @@ -814,7 +814,7 @@ char *offHelpers_transform() { } return(runtimeConfig[transform]); } - + char *offHelpers_transformTo() { if (runtimeConfig[transformTo] == NULL) { @@ -822,7 +822,7 @@ char *offHelpers_transformTo() { } return(runtimeConfig[transformTo]); } - + char *offHelpers_transformFrom() { if (runtimeConfig[transformFrom] == NULL) { @@ -830,7 +830,7 @@ char *offHelpers_transformFrom() { } return(runtimeConfig[transformFrom]); } - + char *offHelpers_userAt() { if ((offHelpers_offScpUser() != NULL) && (!strEq(offHelpers_offScpUser(), ""))) { @@ -1643,7 +1643,7 @@ void transport_transformFrom(char *file) { offFile = strdup(basename(file)); offFilePath = offHelpers_getOffFilePath(offFile); - + tmp = malloc(strlen(offHelpers_objectPath()) + strlen(offFilePath[1]) + 1 + 8); sprintf(tmp, "%s/../tmp/%s", offHelpers_objectPath(), offFilePath[1]); d = opendir(tmp); @@ -1871,7 +1871,7 @@ void offCommands_install(gConfig_set_t setF ) { } // create off.store - + if (strEq(runtimeConfig[offMode], "copy")) { mkdirParents(runtimeConfig[offStore]); } @@ -1905,7 +1905,7 @@ void offCommands_track() { char *cmd; char **list; int i; - + cmd = malloc(strlen(externalHelpers[listAttr]) + strlen(offHelpers_gitRepoRoot()) + 1 + 20); sprintf(cmd, "%s `cd %s; git ls-files`", externalHelpers[listAttr], offHelpers_gitRepoRoot()); list = execOut(cmd); @@ -2205,17 +2205,17 @@ void offCommands_push(char *line) { while (objInfoList[oi] != NULL) { char **objInfo; objInfo = split(objInfoList[oi], " "); - + // only lines starting with : (the first line from git diff-tree is the sha) // dont consider deleted files if ((objInfoList[oi][0] == ':') && (objInfo[oiNAME][0] != 'D')) { - + // check header with git cat char *offRef; offRef = exec(gitCat, objInfo[oiOID]); - if (strstr(offRef, offDEFAULTS[offSignatureD]) != NULL) { + if (offRef && (strstr(offRef, offDEFAULTS[offSignatureD]) != NULL)) { // copy git off objects to off.store // found an off reference @@ -2272,7 +2272,7 @@ void offCommands_smudge() { offLogRepo("smudge error: cant get data from stdin."); exit(EXIT_FAILURE); } - + if (strncmp(b, offDEFAULTS[offSignatureD], strlen(offDEFAULTS[offSignatureD])) == 0) { // for git off object, replace git off reference with data from cache or off.store