David Marker wrote:
> Mike Kupfer wrote:
>> I'd like to get gpyfm installed well enough on my desktop that I can try
>> using it instead of FileMerge, even for work in Teamware workspaces.  (I
>> expect it won't have Tooltalk support.  That's fine; I'll cope.)
>>
>> So I see there's a copy of gpyfm and fm in usr/src/tools in the onnv-scm
>> repo.  Do I need to build usr/src/tools and install the resulting
>> SUNWonbld?  Do I need to do anything to make Python find the fm package?
>>
>> thanks,
>> mike
>> _______________________________________________
>> scm-migration-dev mailing list
>> scm-migration-dev at opensolaris.org
>> http://opensolaris.org/mailman/listinfo/scm-migration-dev
>>   
> 
> Hi Mike,
> 
> Sorry about such a late reply.
> 
> Did you check out http://www.genunix.org/wiki/index.php/gpyfm-tutorial ?
> I haven't seen any putbacks for gpyfm, so the tar.bz2 should be up to 
> date. gpyfm uses this technique to find the fm package:
>    sys.path.insert(1, '%s/../lib/python' % (os.path.dirname(sys.argv[0])))
> 
> So while gpyfm is intended to be installed as /opt/onbld/bin/gpyfm that 
> isn't required. It will look for its package in ../lib/python.
> That means you can install gpyfm in ~/bin and have fm in ~/lib/python. 
> /opt/onbld is not hard coded or required. Its just a script, so you 
> don't even have to byte compile it to run it, python will do that for you.
> 
> As far as teamware goes, it wouldn't be hard to write a front end for 
> that. The only file you should need to change is gpyfm.py itself.
> I had intended originally that there could be gpyfm-hg, gpyfm-tw, and 
> even gpyfm-cvs. But I haven't had time (and I've already got two RFEs 
> when I do get time), and it wasn't deemed necessary to the SCM migration 
> project. I believe I left sufficient comments in gpyfm.py that it 
> shouldn't be too hard.
> 
> As I recall, when there is a conflict with teamware, it adds an extra 
> delta. So if you had 1.27 and the gate/clone you pulled from has 1.27 as 
> well (because somebody else put back) then you should end up with a 
> 1.27.1. It probably gets a little more complex if you have several 
> deltas you have not collapsed. So in order to get parent/child/ancestor 
> you just need to "sccs print" the right deltas. That would have to be 
> handled in in __main__, where it currently expects to be given those 
> three files on the command line.

While I can't seem to currently find it (I know I've read it before...) 
McVoy had a paper regarding how TeamWare handles s-file merging that 
explained it in some detail (assuming it still matches reality), that should 
answer most questions regarding exactly how things look before during and 
after a TW resolve.

> Then in quit you would need to copy the merged file (a temp file you 
> created) to the right place after 1st doing an "sccs edit". Not sure if 
> you would want to finish up with an "sccs delget" to check it in or not...
> 
> But all in all it shouldn't be more than 20-30 lines of code change to 
> make a gpyfm-tw. Lots of os.popen() with your sccs commands.
> 
> Another note, the code follows http://www.python.org/dev/peps/pep-0008/ 
> not cstyle. That is 4 spaces, not tabs. Most python follows this 
> convention, so I thought it better to adhere to this (it isn't C after 
> all, its python).

For what it's worth, I agree, though most of the bits I've done have been 
following what Steve did initially (consistency being better than 
correctness and all that).

-- Rich



Reply via email to