On Dec 3, 2017, at 14:28, Ken Cunningham wrote:

> I'm getting stuck generating a diff file for the changes made in revison 
> 307461 of libcxx, so I can backport that into llvm-4.0 to fix the build of 
> libcxx for PowerPC.
> 
> <http://llvm.org/viewvc/llvm-project?view=revision&revision=307461>
> 
> I have checked out the llvm, libcxx, and libcxxabi sources using svn.
> In the projects/libcxx directory, I tried
> 
> svn diff -r 307460:307461
> but that gives me "svn: E175013: Access to 
> '/svn/llvm-project/!svn/vcc/default' forbidden"
> 
> so I've tried
> 
> svn diff -r 307460:307461 http://llvm.org/svn/llvm-project/libcxx/trunk
> svn diff -r 307460:307461 http://llvm.org/svn/llvm-project/libcxx/trunk .
> svn diff -r http://llvm.org/svn/llvm-project/libcxx/trunk@307460 
> http://llvm.org/svn/llvm-project/libcxx/trunk@307461
> 
> but that all gives a similar error.
> 
> I know this must be easy, otherwise nobody would be using svn.

I see that error too.

$ svn di -c 307461 http://llvm.org/svn/llvm-project/libcxx/trunk
svn: E175013: Access to '/svn/llvm-project/!svn/vcc/default' forbidden

The server-side configuration of the repository must be preventing this type of 
access. It is possible for the server administrator to restrict access to 
certain subdirectories, and this error message makes it seem like that has been 
done. You'd have to ask the llvm people if they can reconfigure their server to 
allow this type of access.

Looking at the list of files modified by this commit...

$ svn log -qvr 307461 http://llvm.org/svn/llvm-project/libcxx/trunk
------------------------------------------------------------------------
r307461 | ericwf | 2017-07-07 23:18:41 -0500 (Fri, 07 Jul 2017)
Changed paths:
   A /libcxx/trunk/src/experimental/filesystem/filesystem_time_helper.h
   M /libcxx/trunk/src/experimental/filesystem/operations.cpp
   A /libcxx/trunk/test/libcxx/experimental/filesystem/convert_file_time.sh.cpp
   M /libcxx/trunk/utils/libcxx/test/config.py
------------------------------------------------------------------------

...I thought to try diffs of each of those subdirectories of trunk, to see 
which of them were restricting access. Surprisingly, none of them were, so this 
is a way to obtain the diff:

$ svn di -c 307461 http://llvm.org/svn/llvm-project/libcxx/trunk/src > 
r307461.diff
$ svn di -c 307461 http://llvm.org/svn/llvm-project/libcxx/trunk/test >> 
r307461.diff
$ svn di -c 307461 http://llvm.org/svn/llvm-project/libcxx/trunk/utils >> 
r307461.diff

Or it could be that r307461 also modified more files than those listed, and 
that I would see the full list if I were authenticated with the repository as a 
user permitted to see those files; I'm not sure because I haven't worked with a 
Subversion repository with path-based access restrictions before.

According to llvm's viewvc installation, only the four files shown above were 
modified:

http://llvm.org/viewvc/llvm-project?view=revision&revision=307461

Viewvc is another way to download diffs and added files, though I don't see a 
way to download a revision's entire diff; viewvc/viewcvs has always seemed very 
confusing and unhelpful to me, compared with the Trac repository browser.


Reply via email to