{"thread":{"id":"10872","subject":"[BULLS**T PATCH] Allow Git to work at Insane Bank Corp","startedAt":"2007-11-15T01:52:27Z","lastAt":"2007-11-15T03:36:11Z","messageCount":5,"participants":["Shawn O. Pearce","Johannes Schindelin","Morten Welinder","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"59906","messageId":"20071115015227.GA2116@spearce.org","threadId":"10872","inReplyTo":null,"subject":"[BULLS**T PATCH] Allow Git to work at Insane Bank Corp","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-11-15T01:52:27Z","receivedAt":"2007-11-15T01:52:27Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Oh what a day I've had.  Today Insane Bank Corp (my day-job employer)\nupgraded their Windows desktop encryption software.  *Every*\ndirectory on every computer is now blessed with a \"Desktop.ini\" file.\nGit of course loves this concept:\n\n $ git for-each-ref >/dev/null && echo yes\n error: refs/Desktop.ini points nowhere!\n error: refs/heads/Desktop.ini points nowhere!\n yes\n\nFortunately for-each-ref allows corrupt refs to exist in the ref\nnamespace.  So until Git is properly patched we are at least able\nto ignore these error messages.\n\nFor corporate security reasons it is obviously absolutely vital that\nthese Desktop.ini files exist in every directory of every system.\nEven if application software scans all files in a particular\ndirectory and assumes those files belong to it.  If these files did\nnot exist it would not be possible for Insane Bank Corp to protect\nits customer's data, which of course must be toted around on $1000\nlaptops in the posession of any employee who asks for one.\n\nBecause Insane Bank Corp is one of the largest banks in the world\nall 3rd party software vendors must comply and correct their\napplications to not fail when they encounter Desktop.ini in an\napplication's internal data directory.  Or they will lose their\ncontract with Insane Bank Corp.\n\nThis patch must be applied to Git, since Git is a 3rd party software\nproduct and its global assets are much smaller than those of Insane\nBank Corp.  If not applied Git won't be permitted for use.  Git could\nlose all of its software licenses and support contracts.  Git shall\ndo as Insane Bank Corp requests.\n\nNever-Shall-Be-Signed-Off-By: me\n\n---\n\n </rant off>\n\n Seriously, this patch shouldn't ever be made to Git.  I'll likely\n have to carry it in my own local build process until the end\n of time.\n\n Our corporate security goons are unable to fathom why having\n \"Desktop.ini\" shoved into every directory of every filesystem may\n cause problems for some applications.  Especially those who may\n attempt to read every file in a given directory.\n\n Just thought folks would like to see what sort of bulls**t patches\n internal developers need to create for systems because they are\n unable to rely upon the operating system they are forced to rely\n upon for \"security reasons\".  Yes, really, Insane Bank Corp feels\n that Microsoft Windows Xtreme Professional is more trustworthy\n than RedHat Linux.  Especially when toted in someone's backpack.\n Just so long as Desktop.ini is in every directory we're safe.\n\n Grrrrrrrrrrrrr.\n\n </rant really is now off>\n\n git-compat-util.h |   13 +++++++++++++\n 1 files changed, 13 insertions(+), 0 deletions(-)\n\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex ca0a597..ca875c7 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -172,6 +172,19 @@ extern uintmax_t gitstrtoumax(const char *, char **, int);\n extern const char *githstrerror(int herror);\n #endif\n \n+#ifdef WORK_FOR_INSANE_BANK_CORP\n+static inline struct dirent *gitreaddir(DIR *dirp)\n+{\n+\tstruct dirent *r;\n+\twhile ((r = readdir(dirp))) {\n+\t\tif (!strcasecmp(r->d_name, \"Desktop.ini\"))\n+\t\t\tcontinue;\n+\t}\n+\treturn r;\n+}\n+#define readdir gitreaddir\n+#endif\n+\n extern void release_pack_memory(size_t, int);\n \n static inline char* xstrdup(const char *str)\n-- \n1.5.3.5.1728.g34b3e\n"},{"id":"59908","messageId":"Pine.LNX.4.64.0711150211360.4362@racer.site","threadId":"10872","inReplyTo":"20071115015227.GA2116@spearce.org","subject":"Re: [BULLS**T PATCH] Allow Git to work at Insane Bank Corp","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-11-15T02:13:26Z","receivedAt":"2007-11-15T02:13:26Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 14 Nov 2007, Shawn O. Pearce wrote:\n\n> For corporate security reasons it is obviously absolutely vital that\n> these Desktop.ini files exist in every directory of every system.\n\nThis makes sense, absolutely.\n\n> Never-Shall-Be-Signed-Off-By: me\n\nNever-To-Be-Acked-By: me.\n\nBut seriously, some things like these should make it possible for one of \nthe fastest SCMs in the world (both in performance and in development) to \nget some serious contracts.\n\nI mean, how does svn cope with something like that?\n\nCiao,\nDscho\n"},{"id":"59909","messageId":"20071115022759.GJ14735@spearce.org","threadId":"10872","inReplyTo":"Pine.LNX.4.64.0711150211360.4362@racer.site","subject":"Re: [BULLS**T PATCH] Allow Git to work at Insane Bank Corp","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-11-15T02:27:59Z","receivedAt":"2007-11-15T02:27:59Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> On Wed, 14 Nov 2007, Shawn O. Pearce wrote:\n> \n> > For corporate security reasons it is obviously absolutely vital that\n> > these Desktop.ini files exist in every directory of every system.\n> \n> But seriously, some things like these should make it possible for one of \n> the fastest SCMs in the world (both in performance and in development) to \n> get some serious contracts.\n\nWell, see, you can't actually use Git at Insane Bank Corp because it\nwasn't put on the approved list of software.  Furthermore if it was\nput on that list it would probably only ever be approved for use on\nRedHat Linux, as on Windows there is Microsoft Visual Source Suck\nand on Solaris there is Rational ConfusingCase.  All provide the\nsame function and therefore are exactly suitable for those platforms.\n\nAny deviants get Desktop.ini files where they don't want them.\n\nKeep in mind that Insane Bank Corp has approved the following OS\nand database combinations, as they are all the same thing.  Any\nmixing/matching is not permitted:\n\n  OS         Database\n  ------------------------------\n  Windows    Microsoft SQL Server\n  Solaris    Oracle\n  AIX        IBM DB2\n  Linux      MySQL\n\nBecause you can do anything that Oracle does with MySQL if Linux\nis your OS.  Didn't you know that MySQL understands all of Oracle's\nextended SQL syntax?  Silly developers.  :-)\n \n> I mean, how does svn cope with something like that?\n\nSVN probably doesn't care.  As in SVN probably only scans the working\ndirectory, which you can tell it to ignore Desktop.ini files in.\nWhen it looks at the SVN/ metadata directory in a checkout it\nprobably knows exactly what files its going after.  Extra files\ndon't matter to it.\n\nIn the fsfs and bdb backends SVN is probably again only going after\nknown filenames.  So it probably isn't impacted by extra crap shoved\ninto the directory.\n\n\nI'm waiting for the next release of the desktop security software,\nthe one that adds an extra 1M binary header to the front of every one\nof Java source files, because that's the only way they can protect\nthe data that never should have been on a portable computing device\nin the first place.\n\nI can't wait for Java 6 update 4 Special Edition for Insane Bank\nCorp version to be rolled out to ignore those headers.  Or for the\nEclipse 3.3.1.1.1 release which will also ignore those headers.\n\n-- \nShawn.\n"},{"id":"59910","messageId":"118833cc0711141830r50b22f77o5c90dfccdc8f35c7@mail.gmail.com","threadId":"10872","inReplyTo":"20071115015227.GA2116@spearce.org","subject":"Re: [BULLS**T PATCH] Allow Git to work at Insane Bank Corp","fromName":"Morten Welinder","fromEmail":"mwelinder@gmail.com","sentAt":"2007-11-15T02:30:08Z","receivedAt":"2007-11-15T02:30:08Z","isPatch":true,"sender":{"key":"mwelinder@gmail.com","avatar":null},"body":"Can't you just load a root kit^w^wsystem extension that hides such\nfiles from any\nand all application?\n\nMorten\n"},{"id":"59912","messageId":"7vlk9089jo.fsf@gitster.siamese.dyndns.org","threadId":"10872","inReplyTo":"20071115015227.GA2116@spearce.org","subject":"Re: [BULLS**T PATCH] Allow Git to work at Insane Bank Corp","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-11-15T03:36:11Z","receivedAt":"2007-11-15T03:36:11Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Shawn O. Pearce\" <spearce@spearce.org> writes:\n\n> Because Insane Bank Corp is one of the largest banks in the world\n> all 3rd party software vendors must comply and correct their\n> applications to not fail when they encounter Desktop.ini in an\n> application's internal data directory.  Or they will lose their\n> contract with Insane Bank Corp.\n>\n> This patch must be applied to Git, since Git is a 3rd party software\n> product and its global assets are much smaller than those of Insane\n> Bank Corp.  If not applied Git won't be permitted for use.  Git could\n> lose all of its software licenses and support contracts.  Git shall\n> do as Insane Bank Corp requests.\n\n.gitignore?\t... ducks ... then comes back.\n\n> +#ifdef WORK_FOR_INSANE_BANK_CORP\n> +static inline struct dirent *gitreaddir(DIR *dirp)\n> +{\n> +\tstruct dirent *r;\n> +\twhile ((r = readdir(dirp))) {\n> +\t\tif (!strcasecmp(r->d_name, \"Desktop.ini\"))\n> +\t\t\tcontinue;\n> +\t}\n> +\treturn r;\n> +}\n> +#define readdir gitreaddir\n> +#endif\n\nSomething like this could be used as an emulation layer for\ncase-corrupting filesystems ;-)\n"}]}