OK, I understand. I hope you can resolve the plEAXListenerMod/softvolume issue together with Paradox or Nadnerb (or someone else knowledgeable in this direction) - while I have done some bugfixing and research work about softvolumes, I'm utterly clueless about the rest of Plasma (and besides, I don't have EAX capable hardware to test it).
________
Rant - unrelated to the conversation with GPNMilano and not directed at anyone in particular:Most of those of you who have contrib folders in the PyPRP repository have a peculiar style of working with Subversion that in my opinion doesn't make full use of Subversion's capabilities and needlessly complicates work both for you and in particular for the people who want to merge your work into the trunk or into their own branches. If that's just because you aren't familiar with Subversion, I hope you take this as a friendly hint to learn something from - if it was an informed choice, take it as a surprised observation from an outsider, not as criticism intended to have you change your ways.
Let's say you have modified the file
prp_SomeClasses.py and want to commit it to your contrib. You do that by copying the modified file into your working copy of pyprp/contrib/Someone,
svn adding it (or the Tortoise equivalent), and committing, say as revision 530. What if later you want to review what you have done in that revision?
- Code: Select all
~/pyprp/contrib/Someone$ svn diff -c530
(in TortoiseSVN:
Show log, select revision 530 in the upper pane, double-click on prp_SomeClasses.py in the lower pane) doesn't help: it just tells you that the whole file was added in that revision. You need to tediously find the original file before your modification, in the correct revision, in your working copy of the trunk or in the repository, then manually feed it to
svn diff or your favorite diff utility together with the modified prp_SomeClasses.py.
What if I want to merge your change into my own branch or the trunk? First, since the SVN log only tells me that you added prp_SomeClasses.py in r530, I need to make a guess as to what the original file was that you modified to arrive at contrib/Someone/prp_SomeClasses.py r530. A reasonable guess is trunk/src/prp_SomeClasses.py r529. If I guess wrong, and it was in fact trunk/src/prp_SomeClasses.py r528, then I will end up reversing the changes (if any) that were made in trunk/src/prp_SomeClasses.py r529. So, to review your changes, I can do
- Code: Select all
svn diff http://svn.guildofwriters.com/pyprp/trunk/src/prp_SomeClasses.py@530 http://svn.guildofwriters.com/pyprp/contrib/Someone/prp_SomeClasses.py@530
(Tortoise: open the repo browser in r530, choose
Mark for comparison on the contrib/Someone folder, then
Compare URLs on trunk/src). (Trunk r530 is the same as trunk r529 since you didn't change the trunk in that revision.) To merge, I
svn update (backdate) my working copy of the trunk to r530, replace trunk/src/prp_SomeClasses.py by contrib/Someone/prp_SomeClasses.py,
svn diff to check,
svn update to HEAD again to let Subversion merge in the trunk changes since r530, diff again to check, and commit.
That was the complicated workflow as it exists today. What about the easy one?
Here you are again with your freshly modified prp_SomeClasses.py, and a working copy of trunk and contrib/Someone (not containing prp_SomeClasses.py yet) in r529. Now you do
- Code: Select all
~/pyprp$ svn copy trunk/src/prp_SomeClasses.py contrib/Someone/
(Tortoise: right-drag the prp_SomeClasses.py file from trunk to contrib/Someone and select
SVN Copy versioned item(s) here from the context menu). You can do that before you even start modifying, and then do the modifications directly in the copied file, or if you already have the modified file elsewhere (e.g. in .blender/scripts), replace the SVN-copied file in contrib/Someone by your modified one (using normal, non-SVN file copying/movement). The important thing is to have used an
SVN copy operation once to create the file in contrib/Someone initially, not just a normal file copy/move. When you commit now, Subversion knows that your new file is a modified version of trunk/src/prp_SomeClasses.py r529, and the output of
svn log -v -r530 or the TortoiseSVN
Show log dialog will reflect that. As a side effect, this uses less disk space on the server, since the repository knows what the original file was and only needs to store your modifications, while it would store the whole file if you had just
added it as a new file.
Reviewing your modifications now is as easy as
- Code: Select all
~/pyprp/contrib/Someone$ svn diff -c530
or Tortoise
Show log - the diff will only show your changes. Merging them to the trunk is as easy as
- Code: Select all
~/pyprp/trunk/src$ svn merge -c530 ../../contrib/Someone
, which has the additional benefit that Subversion will record the merge so that it will not attempt to merge the same revision again later. In TortoiseSVN: Right-click on trunk/src,
Merge >
Merge a range of revisions > ...
Even more convenient would be, IMHO, if you wouldn't just store individual modified files in your contrib folders, but make them real branches, i.e. full SVN copies of trunk (or trunk/src) (like contrib/CWalther/experimental and contrib/CWalther/stable). That does
not use significantly more space on the server - copies are cheap in Subversion, the repository only stores references to the original files, not full copies of their contents (plus the modifications you make to them). For one thing, that would make it easier to switch from trunk to branch to branch without having to mix and match individual files and risking version conflicts between them. In addition, you could easily merge changes from the trunk (or other branches) from time to time to make sure your branch stays up to date and compatible with the trunk, increasing the chance that your contributions will merge into the trunk successfully when they're ready for that.