Changing the svn commit hook to allow tabs for tests.

# Keith Miller (9 hours ago)

I don’t know if this is possible but it would be great if some sub-directories could be excluded from the no-tabs pre-commit hook. For example, there are many test262 tests that contain tabs, either because they intentionally try to test parsing tab characters or because they were written by someone that used them. Regardless, it’s pretty inconvenient to add the svn attribute that allows tabs every time I update the tests. Since svn properties can’t apply to directories, as far as I know, there’s no way to add the “allow-tabs” property to the entire test262 directory.

Alternatively, we could remove the pre-commit hook as tabs should be caught by the style-checker anyway. This is a more contentious choice so I’m not proposing it as the first option unless someone else wants to push for it.

Contact us to advertise here
# Darin Adler (9 hours ago)

On May 10, 2019, at 1:00 PM, Keith Miller <keith_miller at apple.com> wrote:

I don’t know if this is possible but it would be great if some sub-directories could be excluded from the no-tabs pre-commit hook.

Maybe we can rewrite the pre-commit hook to allow a whole-directory exception. Ideally I’d prefer not to hardcode directories.

it’s pretty inconvenient to add the svn attribute that allows tabs every time I update the tests

Does it really have to be inconvenient? Can we make script that does this and check it in so anyone can run it? Or build it into webkit-patch or whatever tool you already use?

— Darin

# Keith Miller (9 hours ago)

On May 10, 2019, at 1:07 PM, Darin Adler <darin at apple.com> wrote:

On May 10, 2019, at 1:00 PM, Keith Miller <keith_miller at apple.com> wrote:

I don’t know if this is possible but it would be great if some sub-directories could be excluded from the no-tabs pre-commit hook.

Maybe we can rewrite the pre-commit hook to allow a whole-directory exception. Ideally I’d prefer not to hardcode directories.

I’m not sure I know what you mean by allow a whole-directory exception. Do you mean a top level directory? Or some kind of parameter we pass to the hook to ignore some directory for that run?

I was thinking about excluding OpenSource/JSTests/ and maybe OpenSource/LayoutTests/ as these are the two directories where I expect all, if not most, tests that have tabs to live.

it’s pretty inconvenient to add the svn attribute that allows tabs every time I update the tests

Does it really have to be inconvenient? Can we make script that does this and check it in so anyone can run it? Or build it into webkit-patch or whatever tool you already use?

We could do this. One remaining problem, however, is that you can’t commit with git-svn as it doesn’t support svn properties (or at least I wasn’t able to figure it out).

# Darin Adler (9 hours ago)

On May 10, 2019, at 1:13 PM, Keith Miller <keith_miller at apple.com> wrote:

I’m not sure I know what you mean by allow a whole-directory exception. Do you mean a top level directory? Or some kind of parameter we pass to the hook to ignore some directory for that run?

I meant that we could add something the pre-commit hook could see in Subversion that would create an exception for a whole directory, rather than something inside the hook itself. Perhaps a specially named file, or a Subversion attribute on a specially named file, or something more clever. If Subversion had attributes on directories, it could be that.

you can’t commit with git-svn as it doesn’t support svn properties (or at least I wasn’t able to figure it out)

Ah, that’s a big blocker if lots of people are using git-svn — I certainly use it.

— Darin

# Alexey Proskuryakov (5 hours ago)

10 мая 2019 г., в 13:50, Darin Adler <darin at apple.com> написал(а):

On May 10, 2019, at 1:13 PM, Keith Miller <keith_miller at apple.com> wrote:

I’m not sure I know what you mean by allow a whole-directory exception. Do you mean a top level directory? Or some kind of parameter we pass to the hook to ignore some directory for that run?

I meant that we could add something the pre-commit hook could see in Subversion that would create an exception for a whole directory, rather than something inside the hook itself. Perhaps a specially named file, or a Subversion attribute on a specially named file, or something more clever. If Subversion had attributes on directories, it could be that.

Subversion supports properties on directories, we use those for svn:ignore as an example. It is correct that the pre-commit hook doesn't currently check parent directory properties.

An alternative is to just set it on all files in the directory.

you can’t commit with git-svn as it doesn’t support svn properties (or at least I wasn’t able to figure it out)

Ah, that’s a big blocker if lots of people are using git-svn — I certainly use it.

Looks like it may now work with recent versions of git (as in since 2015), stackoverflow.com/questions/1271449/how-to-set-subversion-properties-with-git-svn :

git-svn: support for git-svn propset

This change allows git-svn to support setting subversion properties.

It is useful for manually setting properties when committing to a subversion repo that requiresproperties to be set without requiring moving your changeset to separate subversion checkout in order to set props.

There is a nit to point out: the code does not support adding props unless there are also content changes to the files as well. This is demonstrated in the testcase.

Want more features?

Request early access to our private beta of readable email premium.