Recent

Author Topic: Version control integration in Lazarus IDE anyone?  (Read 9589 times)

EganSolo

  • Sr. Member
  • ****
  • Posts: 290
Version control integration in Lazarus IDE anyone?
« on: August 25, 2016, 06:44:32 am »
Looking for version control integration. Would like to check-in, check-out, label a specific version etc. Nothing super-fancy. I know I could use Tortoise-SVN as an add-on to the windows menu (running on Win 10) but would love to have something integrated with the IDE.

Search turned-up older thread and nothing new.

Any pointers would be greatly appreciated.


balazsszekely

  • Guest
Re: Version control integration in Lazarus IDE anyone?
« Reply #1 on: August 25, 2016, 07:12:48 am »
There is no version control integrated in the IDE, however you can invoke an external application(Tortois SVN in this case) with just one key combination. For this you need to configure external tools.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

balazsszekely

  • Guest
Re: Version control integration in Lazarus IDE anyone?
« Reply #3 on: August 25, 2016, 08:24:10 am »
Thanks @avra! I didn't now about LazSVNPkg. Did you try it?

Leledumbo

  • Hero Member
  • *****
  • Posts: 8746
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Version control integration in Lazarus IDE anyone?
« Reply #4 on: August 25, 2016, 09:36:56 am »
Thanks @avra! I didn't now about LazSVNPkg. Did you try it?
It's still an incomplete implementation, I'd rather use the command line directly. If you want to implement one (for SVN, Git and Mercurial), however, don't start from scratch. Grab the xxxclient.pas units from here and turn them into Lazarus integrated packages.

balazsszekely

  • Guest
Re: Version control integration in Lazarus IDE anyone?
« Reply #5 on: August 25, 2016, 10:01:23 am »
Quote
Grab the xxxclient.pas units from here and turn them into Lazarus integrated packages.
Thanks for the info. I also prefer to use SVN/GIT directly, sometimes from command line, sometimes from GUI, it depends on the specific task. I'm not planing to make a package, because version control integration it's not high in my priority list. I would love to see the online package manager come alive though.
« Last Edit: August 25, 2016, 10:41:57 am by GetMem »

Leledumbo

  • Hero Member
  • *****
  • Posts: 8746
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Version control integration in Lazarus IDE anyone?
« Reply #6 on: August 25, 2016, 10:31:27 am »
I would love to see the online package manager come alive though.
Yeah, sadly it's already there but somewhat dead. Might be a good idea to host everything ourselves for security (or something else I can't imagine) concern, but at the same time it kills easy contributions. This list needs expansion:
Code: [Select]
$ fppkg list
Name                 Installed        Available   
a52                  3.1.1            -           
aspell               3.1.1            -           
bfd                  3.1.1            -           
bzip2                3.1.1            -           
cairo                3.1.1            -           
cdrom                3.1.1            -           
chm                  3.1.1            -           
dblib                3.1.1            -           
dbus                 3.1.1            -           
dts                  3.1.1            -           
embweb               -                0.9.1-970   
fastcgi              3.1.1            -           
fcl-async            3.1.1            -           
fcl-base             3.1.1            -           
fcl-db               3.1.1            -           
fcl-extra            3.1.1            -           
fcl-fpcunit          3.1.1            -           
fcl-image            3.1.1            -           
fcl-js               3.1.1            -           
fcl-json             3.1.1            -           
fcl-net              3.1.1            -           
fcl-passrc           3.1.1            -           
fcl-pdf              3.1.1            -           
fcl-process          3.1.1            -           
fcl-registry         3.1.1            -           
fcl-res              3.1.1            -           
fcl-sdo              3.1.1            -           
fcl-sound            3.1.1            -           
fcl-stl              3.1.1            -           
fcl-web              3.1.1            -           
fcl-xml              3.1.1            -           
fftw                 3.1.1            -           
fpgtk                3.1.1            -           
fpindexer            3.1.1            -           
fpmkunit             3.1.1            -           
fppkg                3.1.1            -           
fv                   3.1.1            -           
gdbint               3.1.1            -           
gdbm                 3.1.1            -           
gecko                -                2.9.0-3     
ggi                  3.1.1            -           
gmp                  3.1.1            -           
gnome1               3.1.1            -           
googleapi            3.1.1            -           
googleapis           3.1.1            -           
graph                3.1.1            -           
gtk1                 3.1.1            -           
gtk2                 3.1.1            -           
hash                 3.1.1            -           
hermes               3.1.1            -           
httpd22              3.1.1            -           
httpd24              3.1.1            -           
ibase                3.1.1            -           
iconvenc             3.1.1            -           
ide                  3.1.1            -           
imagemagick          3.1.1            -           
imlib                3.1.1            -           
jni                  3.1.1            -           
jquery               -                0.9.0-842   
lazmkunit            -                0.9.4-1     
ldap                 3.1.1            -           
libcurl              3.1.1            -           
libenet              3.1.1            -           
libgd                3.1.1            -           
libmicrohttpd        3.1.1            -           
libpng               3.1.1            -           
libsee               3.1.1            -           
libtar               3.1.1            -           
libvlc               3.1.1            -           
libxml2              3.1.1            -           
lnet                 -                0.6.6-2613 
lua                  3.1.1            -           
mad                  3.1.1            -           
modplug              3.1.1            -           
mysql                3.1.1            -           
ncurses              3.1.1            -           
newt                 3.1.1            -           
numlib               3.1.1            -           
odata                3.1.1            -           
odbc                 3.1.1            -           
oggvorbis            3.1.1            -           
openal               3.1.1            -           
opencl               3.1.1            -           
opengl               3.1.1            -           
opengles             3.1.1            -           
openssl              3.1.1            -           
oracle               3.1.1            -           
pasjpeg              3.1.1            -           
paszlib              3.1.1            -           
pcap                 3.1.1            -           
postgres             3.1.1            -           
proj4                3.1.1            -           
ptc                  3.1.1            -           
pthreads             3.1.1            -           
pxlib                3.1.1            -           
regexpr              3.1.1            -           
rsvg                 3.1.1            -           
rtl                  3.1.1            -           
rtl-console          3.1.1            -           
rtl-extra            3.1.1            -           
rtl-generics         3.1.1            -           
rtl-objpas           3.1.1            -           
rtl-unicode          3.1.1            -           
sdl                  3.1.1            -           
sqlite               3.1.1            -           
svgalib              3.1.1            -           
symbolic             3.1.1            -           
syslog               3.1.1            -           
tcl                  3.1.1            -           
unzip                3.1.1            -           
users                3.1.1            -           
utils-lexyacc        3.1.1            -           
utmp                 3.1.1            -           
uuid                 3.1.1            -           
webdesign            -                0.9.0-906   
x11                  3.1.1            -           
xforms               3.1.1            -           
zlib                 3.1.1            -           
zorba                3.1.1            -

balazsszekely

  • Guest
Re: Version control integration in Lazarus IDE anyone?
« Reply #7 on: August 25, 2016, 10:57:52 am »
@Leledumbo
There was a long discussion in the mailing list 1-2 years ago, unfortunately no one has a clear idea how the online package manger should work. I would zip every package and store it on a webserver + a txt file with a short description of each package(name, version, compatibility, etc).

Graeme

  • Hero Member
  • *****
  • Posts: 1428
    • Graeme on the web
Re: Version control integration in Lazarus IDE anyone?
« Reply #8 on: August 25, 2016, 11:07:10 am »
Would like to check-in, check-out,
That is such a historic way of working with version control. SVN, Mercurial, Git etc all moved long past the "file locking" way of version control. Nowadays there is no such thing as file  "check-in" or "check-out".

As far as I see it, there really is no benefit of IDE integration with modern version control systems. If you run a GUI version control client, run in side by side with your idea - it will have more features. If you use command line (my preference) you simply run a console window side by side with the IDE - something I have open all the time anyway. At least for Git, the command line interface is always the most powerful interface and always up to date. The GUI front-ends always limit functionality and lag behind features.
« Last Edit: August 25, 2016, 11:10:50 am by Graeme »
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

Leledumbo

  • Hero Member
  • *****
  • Posts: 8746
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Version control integration in Lazarus IDE anyone?
« Reply #9 on: August 25, 2016, 03:08:31 pm »
@Leledumbo
There was a long discussion in the mailing list 1-2 years ago, unfortunately no one has a clear idea how the online package manger should work. I would zip every package and store it on a webserver + a txt file with a short description of each package(name, version, compatibility, etc).
Yes, sadly. I think we can simply design a specific directory structure and a file describing the package and its requirements (like composer.json by composer, package.json by npm, etc.) then put it anywhere reachable and provide a tool capable of downloading, reading the description file, recursively gets its dependencies, build and install the package in a configurable directory. fppkg already does that, I believe. So it really just needs extension to handle VCS. After that, packages can be hosted and grabbed anywhere.

Graeme

  • Hero Member
  • *****
  • Posts: 1428
    • Graeme on the web
Re: Version control integration in Lazarus IDE anyone?
« Reply #10 on: August 26, 2016, 11:47:04 am »
Take a look at Delphinus [https://github.com/Memnarch/Delphinus]. It is a package manager for Delphi IDE, but the backend is hosted on Github. You can add your own packages via Github, and don't even need to modify the Delphinus repository. Lazarus IDE (and FPC in general) could use something like that maybe.
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

 

TinyPortal © 2005-2018