Hi,
> > As the current implementation of versioncontrol.py does not follow symlinks
> > as a fallback, I can not use it.
> 
> I think it can be useful to follow symlinks. Thanks for the idea!  I'm
> wondering if your problem could also have been solved with a symlink to
> the CVS or .svn directory. Anybody using this setup?
this should have some unwanted side effects:
 - upload: non-nessary files are downloaded
 - submit: if we assume, that the language files stored in the pootle directory
are spread across many directories of the project's source tree (otherwise we
would use the local working copy directly), then we would have to link many
different .svn or CVS directories, to cover all language files - right?

> > As the current state of versioncontrol.py does not seem to be easy to extend
> > for other version control systems, I turned it into a class based module.
> > Now it should be very easy to add other version control systems. (I left
> > some parts of the old interface there, to keep the changes in other files
> > small - this needs to be cleaned up)
> 
> This is a good idea. I've also felt it could use some restructuring.
> This will have to be tested well as it is quite a big change, so I'm not
> specifically against even making API changes in other files if it is
> necessary. 
maybe this change should wait for pootle-0.11?
(especially, if the dependency on pysvn should be added)

> I will probably need your help in testing the beta versions
> or release candidates.
I would be glad to help.

> > Additionally I replaced the commandline calls of "svn" with the python
> > module "svn" (http://pysvn.tigris.org).
> 
> I'm wondering a bit about this. pysvn doesn't seem to be a standard
> package. I see it is packaged for Debian and they provide install kits
> for Windows and Mac OSX.
the source claims to compile on all *nix platforms

> I couldn't download the source now because of a redirect loop on their
> site.
I had the same problem - it disappeared, when I stopped blocking cookies from
www.tigris.org and pysvn.tigris.org - I just sent a bug report to the package
maintainer.

> It seems a bit big to package with Pootle, and from a quick look at the
> source code, seems to be in C++. 
and it seems to depend on the currently installed version of subversion -
so packaging together with pootle should not be an option, as it would create a
lot of hassle

> I'm wondering if this would affect performance - my guess is that it
> will make no difference. 
I guess, we would avoid to fork a new process, as pysvn just uses library calls
(just talking, without knowing anything ...)

> Wouldn't it be easier to stick with the command
> line client, or are there other benefits to using pysvn? 
the python code looks more python-like - additionally it should be useful, if we
want to manage conflicts (later)

> > But I had to turn off the checks for "commit" permissions in the source
> > code, as I could not discover a way to give my user "commit" permissions
> > via /etc/pootle/user.prefs or with the admin webinterface. 
> > I could not find any example regarding this. Could you give me a hint?
> For information about assigning permissions or rights, visit
> http://translate.sourceforge.net/wiki/pootle/permissions
> 
> For information about version control integration, visit
> http://translate.sourceforge.net/wiki/pootle/version_control
oh - maybe I found an inconsistency here: the source says, that you need
"admin" privileges (indexpage.py line 730), but the wiki page says "update"
privileges.
And: even administrator's seem to require specific 'commit' privileges, even if
they are the ones who can grant them to others (indexpage.py line 735).

> Thank you for your contribution! I currently have many patches to go
> through, so please understand if it doesn't get my immediate attention.
> It would be wonderful if we can extend Pootle's abilities with regard to
> version control. We'll still need to discuss pysvn a bit, but I'm happy
> to have another contributor!
After thinking some more about this, I would suggest, to keep the old
commandline way, as pysvn is really a little bit uncommon (it is only
included in debian). Additionally it does not offer any useful feature
necessary for the current state of version control support in pootle.

What about the following proposal:
I would prepare a patch, that:
 - turns the flat versioncontrol.py into an object-oriented module with
different classes for svn and cvs.
 - checks the original directory of symlinked files for version control
information
 - changes all references to the current functions in versioncontrol.py to the
new object-oriented structure

The result should be similar to the other patch, that I did to the list before,
excluding the dependency on pysvn.

The versioncontrol module could provide the following functions:
 - get_versioned_object(filename) - raises IOError for failure
 - is_versioned(filename) - true/false

The object returned by get_versioned_object would supply the following methods:
 - update(self, revision=None)
 - commit(self, message=None)
 - getcontent(self, revision=None)

What do you think?

regards,
Lars

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Translate-pootle mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/translate-pootle

Reply via email to