Ignore every file except XX*
Hi, Not sure if this belongs in users or in dev so I follow the guidelines and post here first. I would like to svn:ignore every file (in a certain path) except files starting with XX or YY. This question seems to have been asked in 2006 ("inverse of svn:ignore property"). I've tried to trace the code and it seems nothing came out of this. Considering there has been 14 years of development, is there another way to solve this nowadays? If coding is needed, I'm willing to contribute code. I have some thoughts on the different design points, but maybe that's a topic for the dev list. Thanks for your feedback, and a big Thank you! to all who have contributed to a great software package. Kind regards Daniel
Re: Ignore every file except XX*
On 11.06.2020 10:46, Daniel Sahlberg wrote: > Hi, > > Not sure if this belongs in users or in dev so I follow the guidelines > and post here first. > > I would like to svn:ignore every file (in a certain path) except files > starting with XX or YY. > > This question seems to have been asked in 2006 ("inverse of svn:ignore > property"). I've tried to trace the code and it seems nothing came out > of this. > > Considering there has been 14 years of development, is there another > way to solve this nowadays? There's no explicit "inverse of svn:ignore" property, or any magic syntax that would invert the match. The way I solve a similar case is to set svn:ignore to '*', i.e., to ignore everything, then just 'svn add' the files I want under version control. It's not ideal, as you'd miss the files you're interested in. About feature design -- unfortunately we can't just invent a syntax that would invert the meaning of the glob patterns in svn:ignore, as that would break backward compatibility. Any ideas for a solution would be most welcome. -- Brane
Re: Ignore every file except XX*
Hi, Thanks for your quick response! > The way I solve a similar case is to set svn:ignore to '*', i.e., to > ignore everything, then just 'svn add' the files I want under version > control. It's not ideal, as you'd miss the files you're interested in. > Already doing this. But sometimes we forget to 'svn add' a new file which then doesn't show up as modified. User error, surely, but if the mistake can be avoided :-) > About feature design -- unfortunately we can't just invent a syntax that > would invert the meaning of the glob patterns in svn:ignore, as that > would break backward compatibility. Any ideas for a solution would be > most welcome. > Exactly my thoughts. The only solution I see is to add a new property svn:unignore which is applied after (or in conjunction with) the svn:ignore property. A file is ignored if it matches the svn:ignore glob pattern AND NOT matches the svn:unignore glob pattern. If svn:unignore is empty (or non-existent), the behaviour should be exactly the same as today. The code should be reasonably simple (but I have not analyzed if it would affect anything in the public interface) - only question if maintainers think a new property is a good idea. / Daniel
Re: Ignore every file except XX*
On 12.06.2020 07:30, Daniel Sahlberg wrote: > Hi, > > Thanks for your quick response! > > > The way I solve a similar case is to set svn:ignore to '*', i.e., to > ignore everything, then just 'svn add' the files I want under version > control. It's not ideal, as you'd miss the files you're interested in. > > > Already doing this. But sometimes we forget to 'svn add' a new file > which then doesn't show up as modified. User error, surely, but if the > mistake can be avoided :-) > > > About feature design -- unfortunately we can't just invent a > syntax that > would invert the meaning of the glob patterns in svn:ignore, as that > would break backward compatibility. Any ideas for a solution would be > most welcome. > > > Exactly my thoughts. The only solution I see is to add a new property > svn:unignore which is applied after (or in conjunction with) the > svn:ignore property. A file is ignored if it matches the svn:ignore > glob pattern AND NOT matches the svn:unignore glob pattern. If > svn:unignore is empty (or non-existent), the behaviour should be > exactly the same as today. > > The code should be reasonably simple (but I have not analyzed if it > would affect anything in the public interface) - only question if > maintainers think a new property is a good idea. I can't think of a way to solve this without introducing a new property (actually, two new properties, the other has to be the opposite of svn:global-ignores). The code would, indeed, be quite simple; the complex part has already been done, and adding the additional "and not matches X" logic should be trivial. Care to move this over to dev@ with a patch? -- Brane
Re: Ignore every file except XX*
Have you considered a pre-commit hook to deny anything not matching your rule? On Thu, Jun 11, 2020 at 11:21 PM Branko Čibej wrote: > On 12.06.2020 07:30, Daniel Sahlberg wrote: > > Hi, > > > > Thanks for your quick response! > > > > > > The way I solve a similar case is to set svn:ignore to '*', i.e., to > > ignore everything, then just 'svn add' the files I want under version > > control. It's not ideal, as you'd miss the files you're interested > in. > > > > > > Already doing this. But sometimes we forget to 'svn add' a new file > > which then doesn't show up as modified. User error, surely, but if the > > mistake can be avoided :-) > > > > > > About feature design -- unfortunately we can't just invent a > > syntax that > > would invert the meaning of the glob patterns in svn:ignore, as that > > would break backward compatibility. Any ideas for a solution would be > > most welcome. > > > > > > Exactly my thoughts. The only solution I see is to add a new property > > svn:unignore which is applied after (or in conjunction with) the > > svn:ignore property. A file is ignored if it matches the svn:ignore > > glob pattern AND NOT matches the svn:unignore glob pattern. If > > svn:unignore is empty (or non-existent), the behaviour should be > > exactly the same as today. > > > > The code should be reasonably simple (but I have not analyzed if it > > would affect anything in the public interface) - only question if > > maintainers think a new property is a good idea. > > I can't think of a way to solve this without introducing a new property > (actually, two new properties, the other has to be the opposite of > svn:global-ignores). The code would, indeed, be quite simple; the > complex part has already been done, and adding the additional "and not > matches X" logic should be trivial. > > Care to move this over to dev@ with a patch? > > -- Brane > -- "Today, vegetables... Tomorrow, the world!"