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