Perforce Plugin - Trouble with environment in execution of job?

Morten Volden mvolden2 at gmail.com
Tue Nov 16 19:13:09 UTC 2010


Thanks :-)

2010/11/16 <pfee at talk21.com>

>
>
> Morten Volden wrote:
>
> > Hi All
> >
> > A little while ago I asked on this list about the status of a Perforce
> > plug-in for Kdevelop4. Since no one replied I take it that development on
> > such a plug-in is not going on at the moment. So I started writing a
> > perforce plug-in.
> >
> > My current status in short:
> > I have the plug-in loaded, and it will show in the context menu - So far
> > so good.
> >
> > The plugin overrides pure virtual functions in ICentralizedVersionControl
> > and in IBasicVersionControl. E.g. for the edit function I do something
> > like this:
> >
> > KDevelop::VcsJob* perforceplugin::edit(const KUrl& localLocation)
> > {
> >     QFileInfo fsObject(localLocation.toLocalFile());
> >     QString filename(fsObject.fileName());
> >     QDir path(fsObject.dir());
> >
> >     DVcsJob* job = new DVcsJob(path, this, KDevelop::OutputJob::Verbose);
> >     if(job)
> >         kDebug() << "After Creating job, the path is " << path.path() <<
> > "and the filename is " << filename << "... And the jobs dir is: " <<
> > job->directory().path();
> >     *job << "p4" << "edit" << filename;
> >     return job;
> > }
> >
> > When Trying to edit one of the files in my perforce testbed the kDebug
> > gives me the following output:
> >
> > perforceplugin::edit: After Creating job, the path is
> > "/home/mvo/testbed/perforcetest" and the filename is  "main.cpp" ... And
> > the
> > jobs dir is:  "/home/mvo/testbed/perforcetest"
> >
> > Which leads me to believe the DVcsJob I am creating has the correct CWD
> > (i.e. /home/mvo/testbed/perforcetest ). However, the command issued by
> the
> > job fails for reasons that escape me (as can be seen in the screenshot
> > below).
> >
> > http://imagebin.ca/view/89faihm.html
> >
> > The perforce server and port are specified in the file p4config.txt (p4
> > will look for its settings in a file of that name).
> >
> > If I issue the same command in a kdevelop konsole, it works (see konsole
> > window in screenshot below)
> >
> > http://imagebin.ca/view/G4zUSuW.html
> >
> > Can anyone shed some light on what the difference is between the command
> > in the DvcsJob and the command issued in the terminal?
> >
> >  Thanks.
> >
> > Morten
>
> Looks like the P4PORT is not set when the p4 command is invoked.
>
> Btw, the "p4 info" command is helpful when debugging as it doesn't depend
> on
> the rest of your client setup, just P4PORT.
>
> Also, rather than fragile environment variables, you can specify the p4
> port
> as a command line argument.  That may be easier to pass through DVcsJob -
> especially if there's a bug in environment variable handling.
>
> e.g. p4 -p myserver:1666 info
>
> I see command line arguments and environment variables as cousins of
> function arguments and global variables.  Global variables aren't nice.
>
> ... and good luck with the plugin, it'll be good to get Perforce support.
>
> Thanks,
> Paul
>
>
>
>
>
>
> --
> KDevelop-devel mailing list
> KDevelop-devel at kdevelop.org
> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>



-- 
- When the split is pulled, mr. Grenade is no longer our friend
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20101116/f05669aa/attachment.html>


More information about the KDevelop-devel mailing list