I could see a situation where a site would want to track their scripts in a local git repo, in which case they'd need to modify all of the .gitignore files to prevent their scripts from being ignored.
There is another response in the same SO article Andy referenced that explains the case for .gitkeep more: https://stackoverflow.com/questions/115983/how-can-i-add-an-empty-directory-to-a-git-repository/20388370#20388370 After doing more research, it seems people are fairly split over the .gitkeep vs .gitignore approaches. I don't feel strongly either way but did think it worth it to raise the above point. I do think it would still be helpful to include something like what Henry suggested in whatever the file is named to explain the situation. Josh On Tuesday, May 15, 2018 3:50:24 PM EDT Aaron Coburn wrote: > Andy, > > You make an excellent point here. It does seem that using a .gitignore file > would be best. > > -Aaron > > > On May 15, 2018, at 12:18 PM, Andy Kurth <[email protected]> wrote: > > > > I respectfully disagree and think this solution is cleaner: > >> http://stackoverflow.com/a/932982 > > > > To paraphrase the solution linked above so that it is saved in the mailing > > list archives: > > > > Commit a *.gitignore* file in each empty directory containing: > >> * > >> !.gitignore > > > > The .gitignore file is special in that it instructs git to ignore any > > other > > files which will reside in the directory. The first line tells git to > > ignore all files in the directory, including files that may be located in > > subdirectories. The second line tells git *not *to ignore the .gitignore > > file itself. Comments could be added to explain things about the > > directory. > > > > .gitignore serves the same purpose as setting Subversion's *svn:ignore* > > property. This property was set on all the missing directories prior to > > migrating to git. > > > > Regardless of whether a .gitkeep or some other file exists, a .gitignore > > file will still be needed because the purpose of all of the missing/empty > > directories is for adding custom files that should be ignored by git. > > Sure, a top-level .gitignore could be configured with lines/patterns to > > match the missing/empty lower level directories, but I think it's easier > > to > > maintain a simple and consistent .gitignore into each empty directory to > > be > > retained. Committing the file and configuring it appropriately kills 2 > > birds with 1 text file. > > > > On a related note... > > In addition to adding the empty directories, the backend code needs some > > minor tweaks. *OS.pm::run_stage_scripts_on_computer* will currently > > attempt to copy and then execute any file it finds under a directory such > > as: > > /usr/local/vcl/tools/Linux/Scripts/post_load/.gitwhatever > > > > Trying to execute something like .gitwhatever won't fail the reservation > > but causes delays and unnecessary warnings in vcld.log. > > > > There is already an exception in > > *ManagementNode.pm::run_stage_scripts_on_management_node *to ignore > > > > anything that contains ".svn" or ".git": > >> if ($script_file_path =~ /\/(\.svn|\.git)\//i) { > >> > >> ... > >> next; > >> > >> } > > > > *run_stage_scripts_on_computer *and > > *run_stage_scripts_on_management_node* should > > be aligned so they ignore the same things. Perhaps they should ignore > > anything beginning with a period? *OS.pm::get_tools_file_paths* and > > anything else that attempts to search for things under the tools directory > > should also be examined, although I'd be careful to not filter out too > > much > > from upstream subroutines. > > > > -Andy > > > > > > On Tue, May 15, 2018 at 9:56 AM, Josh Thompson <[email protected]> > > > > wrote: > >> I agree on the .gitkeep name and the text Henry suggested. > >> > >> Josh > >> > >> On Tuesday, May 15, 2018 9:17:38 AM EDT Mike Jennings wrote: > >>> I like the idea of the .gitkeep that seems to be short and straight > >>> forward. I am also going to put the text provided by Henry into the > >>> file > >>> so that there will be some context associated with it. > >>> > >>> Thanks for the feedback. > >>> > >>> Mike Jennings > >>> > >>> On Tue, May 15, 2018 at 9:08 AM Aaron Coburn <[email protected]> > >> > >> wrote: > >>>> The pattern that I've seen elsewhere is to place a .gitkeep file in the > >>>> otherwise empty directory. > >>>> > >>>> In principle, this file could have any name, and while I've also > >>>> repositories use .gitignore for this purpose, I agree with Mike that > >> > >> this > >> > >>>> isn't really to the point. > >>>> > >>>> By using the .gitkeep name, it signals to developers that the file is > >>>> related to git metadata rather than application code. > >>>> > >>>> Regards, > >>>> Aaron > >>>> > >>>>> On May 14, 2018, at 6:03 PM, Henry Schaffer <[email protected]> wrote: > >>>>> > >>>>> IMHO the name should inform a person who sees it (a developer or > >> > >> user - > >> > >>>>> whoever) that it's not for them. So a name like .empty or .ignore is > >>>>> helpful. But it would be nice to give more info - it could be done > >> > >> via a > >> > >>>>> longer name, or perhaps there could be a brief explanation in the > >> > >> file > >> > >>>>> along the lines ot > >>>>> > >>>>> The purpose of this file is to keep this directory from being empty > >> > >> so > >> > >>>> the > >>>> > >>>>> directory will be retained in the git repository. The directory is > >> > >> used > >> > >>>> by > >>>> > >>>>> the backend code for some scripts used during provisioning, and so > >> > >> needs > >> > >>>> to > >>>> > >>>>> be retained. > >>>>> > >>>>> --henry > >>>>> > >>>>> On Mon, May 14, 2018 at 4:39 PM, Mike Jennings <[email protected]> > >>>> > >>>> wrote: > >>>>>> There are a number of empty directories under the backend code that > >> > >> are > >> > >>>>>> used for placing scripts that automatically get executed during > >> > >> certain > >> > >>>>>> provisioning stages > >>>>>> > >>>>>> We plan on putting a empty file in each of these directories so that > >>>>>> the > >>>>>> directory structure will be persisted to the git repository. > >>>>>> > >>>>>> The current thought is to use something like ".empty" as the file > >> > >> name > >> > >>>> to > >>>> > >>>>>> commit to the repository, then have this file ignored in the > >> > >> management > >> > >>>>>> node code. > >>>>>> > >>>>>> We could also use the ".gitignore" file, but this is really not > >> > >> what we > >> > >>>> are > >>>> > >>>>>> trying to accomplish here. > >>>>>> > >>>>>> Does anyone have thoughts on what a preferred way to do this would > >> > >> be. > >> > >>>>>> Thanks, > >>>>>> > >>>>>> Mike Jennings > >> > >> -- > >> ------------------------------- > >> Josh Thompson > >> Systems Programmer > >> Virtual Computing Lab (VCL) > >> North Carolina State University > >> > >> [email protected] > >> 919-515-5323 > >> > >> my GPG/PGP key can be found at www.keyserver.net > >> > >> All electronic mail messages in connection with State business which > >> are sent to or received by this account are subject to the NC Public > >> Records Law and may be disclosed to third parties. -- ------------------------------- Josh Thompson Systems Programmer Virtual Computing Lab (VCL) North Carolina State University [email protected] 919-515-5323 my GPG/PGP key can be found at www.keyserver.net All electronic mail messages in connection with State business which are sent to or received by this account are subject to the NC Public Records Law and may be disclosed to third parties.
signature.asc
Description: This is a digitally signed message part.
