Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jan 2013 18:53:03 +0000
From:      Xyne <xyne@archlinux.ca>
To:        glarkin@FreeBSD.org
Cc:        Peter Vereshagin <peter@vereshagin.org>, freebsd-questions@freebsd.org
Subject:   Re: svn-export Re: svn bdb checkout?
Message-ID:  <20130125185303.1396d2a4@archlinux.ca>
In-Reply-To: <5102A771.1080704@FreeBSD.org>
References:  <20130116185832.GB8524@external.screwed.box> <50F6FD37.5060309@gmail.com> <20130116193534.GC8524@external.screwed.box> <50F704CE.3010904@gmail.com> <20130116200754.GD8524@external.screwed.box> <50F70C60.4000108@FreeBSD.org> <20130116205533.GE8524@external.screwed.box> <20130117045431.GB5392@external.screwed.box> <20130119052245.004da49b@archlinux.ca> <51004B62.5090305@FreeBSD.org> <20130124221636.307dca09@archlinux.ca> <5102A771.1080704@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Greg Larkin wrote:

># python3 svn-export -r 310000
>http://svn.freebsd.org/ports/head/ports-mgmt ports-mgmt
>Exporting new repository.
>Exported revision 310000
># python3 svn-export --revision-file rev.dat
>http://svn.freebsd.org/ports/head/ports-mgmt ports-mgmt
>Determining current revision.
>Current revision is 310981.
>Determining changes [310000:310981].
>16 new/modified files, 5 deletions
>Traceback (most recent call last):
>  File "svn-export", line 459, in <module>
>    svn.main()
>  File "svn-export", line 432, in main
>    self.remove_old_files(deleted)
>  File "svn-export", line 310, in remove_old_files
>    os.unlink(path)
>PermissionError: [Errno 1] Operation not permitted: 'ports-mgmt/pkg/files'
># exit
>
>As far as I can tell, svn-export attempts to remove a directory before
>the file contained within that directory.  It seems like
>PermissionError isn't the best error code for Python to throw in that
>case, since it appears to mask the root problem.

On Arch Linux, Python raises the expected "IsADirectoryError" exception. Perhaps
"PermissionError" is due to a bug in Python 3 on FreeBSD. It would not be the
first exception bug that I have encountered (e.g. os.makedirs(...,
exist_ok=True) raises "FileExists" when permissions differ on existing
directories... very confusing the first time it shows up).

Regardless, svn-export now tries to remove a directory in both cases. Please
updated to version 2013.1.25 and let me know if it works on FreeBSD.


>> Incidentally, if anyone is looking at the code for svn-export, feel
>> free to suggest a better way to incrementally export new
>> subdirectories (see the "get_new_files()" method).
>
>I'll take a look at that soon to see if there are any possible
>optimizations.

Ok, thanks.


>Once we create a port for svn-export, we typically point to the
>original download site in the port Makefile.  It's a good idea for the
>port maintainer to find a mirror site and include that too, but if
>not, all distro files are eventually mirrored to the FreeBSD cluster.
>
>Ideally, the source distros remain in place forever or at least until
>the FreeBSD port is updated to the latest version, but if that's not
>possible, I can mirror the files too.

I have changed the time-to-live to 6 months for old archives.

Regards,
Xyne



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130125185303.1396d2a4>