On Sun, Aug 21, 2011 at 07:21, Andy Canfield <andy.canfi...@pimco.mobi> wrote:
> I created a repository and created a subdirectory in it named 'scripts'. In
> this are a half-dozen Linux shell scripts. Unfortunately, I set the execute
> flag on only five of them; the sixth was untested as of my first commit so I
> had never noticed that the execute attribute was unset.
>
> [1] I set the execute attribute and did a commit, but the file was not
> updated in the repository. Apparently the change in atributes was not
> recognized as a file change by Subversion.

If the file's timestamp didn't change, Subversion won't pick up the change.

> [2] I touched the file - I touched ALL the files in scripts, and none of
> them was updated on the commit. Apparently the file timestamp change was not
> taken as a file change by Subversion. OK, Subversion is not storing
> timestamps.

If a change in the timestamp is detected, a checksum is done against
each file's pristine copy (and properties). If the checksums &
properties match, Subversion doesn't flag the file as changed.

> [3] I edited the file, and this was taken as an update by Subversion. I just
> added a blank line to the end of it. But note that the file attributes now
> include the execute flag. I did another checkout, and unfortunately the
> execute flag is STILL not set.
>
> In my humble opinion [1] and [3] should have resulted in the file attributes
> stored in the repository being changed.

I disagree on #1, but for #3 I think it's only picked up when you Add the file.

> So I did an svn delete for that file, then a commit. I restored the file
> from a backup, set the attributes, did an svn add for that file, then a
> commit. Went to another directory and did an svn checkout. OK; now the
> attributes are correct.

You could have also set the svn:executable property on the file. If
you look at your newly-added copy of the file, you'll see that
property set now.

Reply via email to