Commit succeeded, E000030: Can't change perms

66 views
Skip to first unread message

Pingu

unread,
May 24, 2021, 5:04:58 AM5/24/21
to us...@subversion.apache.org
Hello,

I was adding some files to a repository and encountered error "E000030:
Can't change perms". The commit was successful but I don't understand
the error.

The files I added were from a read-only source, so I understand the
nature of the error. What I don't understand is, why is SVN trying to
change permissions?

I assume this doesn't affect the commit but I would like to understand.

-Kenneth

Example of error:

svn: E200000: Commit succeeded, but other errors follow:
svn: E155009: Error bumping revisions post-commit (details follow):
svn: E155009: Failed to run the WC DB work queue associated with
'somerepository', work item 17 (file-commit 12 somefile)
svn: E000030: Can't change perms of file 'somefile': Read-only file system

Thorsten

unread,
May 25, 2021, 3:19:38 AM5/25/21
to Pingu, us...@subversion.apache.org
Hello,

My guess would be that subversion handles the presence and absence of
the the executable bit, so it tries sets the permissions accordingly,
maybe even if they are already correct.

Adding files from a readonly filesystem to a working copy will probably
give you inherently "weird" results, since you cant really work with
these files?

Best regards,

Thorsten

Nathan Hartman

unread,
May 25, 2021, 11:06:24 AM5/25/21
to Pingu, Subversion
During post-commit processing, Subversion ensures that the file is as
it should be in the working copy [1], meaning that its contents and
permissions match its properties and lock status. This includes
adjusting (if necessary) line ending style, keyword translation, and
read/write/execute permissions. In other words, this may alter not
only the file's permissions, but also its contents.

You can see other examples of this post-commit processing in action.
For example, create a test repository, add and commit a text file with
CRLF line endings. Then, add a svn:eol-style property of "LF" to the
file and commit again. Then, without running 'svn update' or any other
commands that might make changes, check the contents of the file and
you'll see that its line endings have changed to LF.

Hope this helps!

[1] See install_committed_file() in libsvn_wc/workqueue.c.

Cheers,
Nathan

Thorsten

unread,
May 26, 2021, 3:59:20 AM5/26/21
to Pingu, us...@subversion.apache.org
Hello,

Given That your commit succeeded, you should be good. For the future you
may or may not find the "svn import" functionality helpful, That way
subversion will not try to alter your existing files. However you will
no longer see localy which files you already added, but you can browse
the repo online. For a one time migration this should be ok.

Best regards,

Thorsten Goetzek

Am 26/05/2021 um 09:52 schrieb Pingu:
> into a new svn repo from another system. I mount the paths as r/o to
> avoid accidentally altering anything. Once it's there, people will get
> their own working copies with normal, r/w permissions.

Pingu

unread,
May 26, 2021, 6:14:59 AM5/26/21
to Thorsten, us...@subversion.apache.org
Thanks, Thorsten. It isn't a common scenario but I'm moving data into a
new svn repo from another system. I mount the paths as r/o to avoid
accidentally altering anything. Once it's there, people will get their
own working copies with normal, r/w permissions.

-Kenneth

Pingu

unread,
May 26, 2021, 6:15:30 AM5/26/21
to Nathan Hartman, Subversion
That makes sense! I wondered why the error popped up on a text file,
instead of another file.

Thank you for the details and explanation. I'm glad that SVN considers
the commit successful, even though it can't alter the working copy,
afterwards.

-Kenneth

Pingu

unread,
May 27, 2021, 7:01:02 AM5/27/21
to Thorsten, us...@subversion.apache.org
Thanks for the tip, Thorsten! I hadn't tried that command. I'll try it.


Reply all
Reply to author
Forward
0 new messages