AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Git-Client mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Git-Client mit Delphi

Ein Thema von tschuerhoff · begonnen am 17. Jun 2016 · letzter Beitrag vom 20. Jun 2016
Antwort Antwort
tschuerhoff

Registriert seit: 2. Nov 2015
2 Beiträge
 
Delphi XE6 Professional
 
#1

Git-Client mit Delphi

  Alt 17. Jun 2016, 09:54
Hallo zusammen,

ich arbeite derzeit an einer Anwendung, die sich selbst per Git aktualisieren soll.
Dazu habe ich einerseits die libgit2 (git2.dll) gefunden und die dazu passenden
Delphi-Bindings "git4delphi". Diese stellen die exported functions der git2.dll in
Delphi zur Verfügung. Soweit, so gut.

Im ersten Schritt möchte ich nun das Git-Repository der Anwendung auf den lokalen
Rechner klonen. Dafür gibt es laut libgit2-API-Reference eine public function "git_clone".
Diese ist aber leider keine exported function und ich kann diese nicht im Delphi-Quellcode
aufrufen.

Es erscheint mit fast so, als müsste ich das Klonen mit den, zur Verfügung stehenden,
exported functions "zu Fuß" erledigen. Was sehr mühsam erscheint.

Komischerweise steht "git_clone" in der Bindings-Variante für PHP(!) zur Verfügung.

Weiß jemand, ob ich vielleicht doch irgendwie an die git_clone-Funktion in der git2.dll
von Delphi aus heran komme?

Oder kennt jemand ein Beispiel, wie ich das Klonen mit den exported functions durchführen kann?

Bin für jede Hilfe dankbar.

Gruß
Thilo

P.S.: Es nicht darum Git als Versionskontrolle in die Delphi-IDE zu integrieren:
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#2

AW: Git-Client mit Delphi

  Alt 17. Jun 2016, 14:30
Hi,

die Funktion git_clone wird sehr wohl von der libgit2.DLL exportiert. Solltest du mit git4delphi das hier meinen: https://github.com/libgit2/GitForDelphi , dann sind dort die Funktionen der clone.h nicht enthalten. Die fehlenden Funktionen muss man selbst definieren und binden.

Die Definition sollte ungefähr so aussehen: git_clone = function (var repo: Pgit_repository; URL: PAnsiChar; LocalPath: PAnsiChar; Options: PGit_clone_options): integer; stdcall; Als Optionen kann man wohl nil übergeben, dann wird GIT_OPTIONS_INIT benutzt. Ansonsten müsste man noch das entsprechende record definieren.

Hilft dir das weiter?
Sebastian
Das kann ja wohl nicht var sein!
  Mit Zitat antworten Zitat
tschuerhoff

Registriert seit: 2. Nov 2015
2 Beiträge
 
Delphi XE6 Professional
 
#3

AW: Git-Client mit Delphi

  Alt 20. Jun 2016, 12:41
Hallo Sebastian,

vielen Dank für Deine Hilfe.
Das hat geholfen.

Allerdings war es auch so, dass die unter https://github.com/libgit2/GitForDelphi angegebene PreBuild-Version
der libgit2.dll wohl eine sehr alte Version ist, die viele Funktionen u. A. git_clone tatsächlich nicht exportiert.

Ich habe mir eine aktuelle Version besorgt und diese, da hast du völlig recht, exportiert alle nötigen Funktionen.

Gruß
Thilo
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz