[gelöst] Wie am besten ein Projekt kopieren mit Umbenennen?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
alfware17
Beiträge: 218
Registriert: Di 14. Dez 2010, 23:27

[gelöst] Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von alfware17 »

Hallo, ich habe noch nicht so viele Projekte in Lazarus gemacht (ca 20) und wenn dann war mir das Problem Ordner/Projekt/Sourcefile-Namen nicht so wichtig. Jetzt aber doch mal.
Ich habe ein Projekt A mit ein paar Units, Hauptprogramm, Forms und Sqlite. Ich möchte einen Clone davon erstellen, der aber B heißt und komplett eigenständig ist, weil A und B später ganz anders aussehen werden.

Ich habe gemacht: Projekt speichern unter B, den Ordner hatte ich mir vorher schon erstellt. Lazarus legt auch die Projektdateien dort an mit dem richtigen Namen B. Was fehlt sind die ganzen anderen Dateien, Units, Forms, Quelltexte. Der Projektinspektor sagt mir, er zieht nach wie vor die aus dem Verzeichnis A an, was mir natürlich nicht gefällt. Muß ich die alle händisch umbauen (die Units und Forms und Quelltexte können erstmal ihre Namen behalten aber zB die main heißt auch noch A_main.pas). Oder gibt es eine automatische Lösung, die ich nur nicht finde. Die Quelltexte selber kann ich ja im Windows, außerhalb Lazarus, kopieren und das eine umbenennen. Aber wie bekomme ich das Projekt sauber "kopiert/umbenannt"?
Zuletzt geändert von alfware17 am Mi 26. Apr 2023, 21:36, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10947
Registriert: Mo 11. Sep 2006, 19:01

Re: Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von theo »

Hast du es schon einmal mit Projekt -> Veröffentlichen probiert?
Ich glaube das macht eine recht saubere Kopie ohne alte Pfade.

wp_xyz
Beiträge: 5207
Registriert: Fr 8. Apr 2011, 09:01

Re: Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von wp_xyz »

alfware17 hat geschrieben: Mi 26. Apr 2023, 16:35 Ich habe ein Projekt A mit ein paar Units, Hauptprogramm, Forms und Sqlite. Ich möchte einen Clone davon erstellen, der aber B heißt und komplett eigenständig ist, weil A und B später ganz anders aussehen werden.
Ich mache dasselbe manchmal mit Beispielprojekten fürs Forum: Das Projekt suchen, das meiner Absicht nahekommt. Den zugehörigen Ordner im Betriebssystem unter neuem Namen kopieren. In der IDE das Projekt aus dem neuen Ordner laden und unter dem neuen Namen speichern (aber in dem neuen Ordner bleiben!). Falls die Units ebenfalls umbenannt werden sollen, jede Unit in die IDE laden und unter dem neuen Namen speichern, die Frage, ob die alte Datei gelöscht werden soll, bejahen. Im Betriebssystem kann man dann noch die Reste des alten Projektnamens im neuen Ordner löschen.

Das, was du gemacht hast, ist gefährlich. Denn es besteht die Gefahr, dass bei der Kopieraktion die Bezüge auf die Units geändert werden, und als folge könnte das alte projekt nicht mehr funktionieren! Also so immer: zuerst im Betriebssystem den Ordner kopieren und nur noch in dem kopierten Ordner arbeiten.

alfware17
Beiträge: 218
Registriert: Di 14. Dez 2010, 23:27

Re: Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von alfware17 »

Aha, so rum die Reihenfolge, erst Dateien kopieren und dann das Projekt kopieren/umbenennen. Danke für die schnelle Antwort. Ich habe im neuen Ordner (B) erst die Projektumbenennung gemacht, dann die alten (A) Projektdateien gelöscht und mußte nur die eine Datei A_main.pas per Hand anpassen in B_main.pas, aber damit kann ich leben.

Jetzt habe ich keine Pfade mehr zu den Sourcen im Projektinspektor gesehen, die waren wahrscheinlich durch das (erst) Umbenennen des Projektes gleich in den neuen Ordner angelegt worden, während das alte A ja noch offen war. Das muß man aber erst einmal wissen.

P.S. Das Veröffentlichen entfällt damit, ich habe ja nun alles korrekt im Ordner B und kann die Version B* von heute nachmittag löschen

wp_xyz
Beiträge: 5207
Registriert: Fr 8. Apr 2011, 09:01

Re: Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von wp_xyz »

alfware17 hat geschrieben: Mi 26. Apr 2023, 21:30 Jetzt habe ich keine Pfade mehr zu den Sourcen im Projektinspektor gesehen, die waren wahrscheinlich durch das (erst) Umbenennen des Projektes gleich in den neuen Ordner angelegt worden, während das alte A ja noch offen war. Das muß man aber erst einmal wissen.
Genau. Wenn du zuerst das Projekt in einen neuen Ordner kopierst, werden im neuen Projekt Pfade zu den Units eingetragen, weil diese ja noch im alten Ordner liegen. Aber wenn du dann die Units lädst und mit der IDE in den neuen Ordner speicherst, werden die Pfade wieder entfernt, weil die Units nun direkt im Projektordner liegen. Manchmal ist es ganz schön beeindruckend, was die IDE da alles erkennt. Dennoch: Ich habe mir auf diese Weise etliches an Mehrarbeit erzeugt, wenn dennoch ein Fehler passiert. Daher kopiere ich lieber zuerst alles außerhalb der IDE und arbeite nur noch im kopierten Verzeichnis. Sinnvoll auch vom Backup-Gedanken her - kein Backup, kein Mitleid.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6872
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von af0815 »

wp_xyz hat geschrieben: Mi 26. Apr 2023, 22:56Daher kopiere ich lieber zuerst alles außerhalb der IDE und arbeite nur noch im kopierten Verzeichnis. Sinnvoll auch vom Backup-Gedanken her - kein Backup, kein Mitleid.
Das das mit dem Kopieren außerhalb der IDE, kann ich nur bestätigen das das der beste Weg ist. Man sollte sein Projekt schön als Struktur organisiert haben, dann geht das ohne Probleme. Damit kann man quasi das alte Projekt als Blaupause (wer das nicht mehr kennt - nimm en Begriff -> Vorlage) nehmen. Dem Projekt (oder Units)einen neuen Namen geben etc., dann aber innerhalb der IDE. Es gibt in der IDE einen Fehler seit ewigen Zeiten:

Wenn man dem Projekt einen neuen Namen gibt über SaveAs: Ist das Ausgabevnamen des Kompilats in einem anderen Verzeichnis und du hast mehrere Buildmodes angelegt, so wird das in den nicht aktiven Buildmodes überschrieben und ist anschließend falsch. Da zerstört die IDE die alten Informationen. Beispiel, habe ich in einem Buildmode als Targetfilename "..\RasPi\testprg" und in einem anderen Buildmode ..\win\testprg.exe" und der erste Buildmode ist aktiv, so wird der Targetfilename von win auf RasPi in allen andern Buildmodes überschrieben.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1636
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: [gelöst] Wie am besten ein Projekt kopieren mit Umbenennen?

Beitrag von corpsman »

Also zum veröffentlichen meiner Projekte auf Github nutze ich den ProjectCollector dieser Kopiert mir alle Projekt relevanten Programmteile in ein Verzeichnis, welches ich dann auf Github hoch laden kann.
Den Weg zurück gibt es auch: ProjectUnCollector

Den am Samstag auf dem Lazarus treffen vorgestellten FPC-Understand
FPC_Understand.PNG
FPC_Understand.PNG (29.5 KiB) 955 mal betrachtet
( ̶n̶o̶c̶h̶ ̶n̶i̶c̶h̶t̶ ̶ö̶f̶f̶e̶n̶t̶l̶i̶c̶h̶ ̶z̶u̶g̶ä̶n̶g̶l̶i̶c̶h̶ [Link] ) nutze ich dann um die fehlenden Inclusionen und Abhängigkeiten auf zu lösen ;)

[Edit]
Link eingefügt.
--
Just try it

Antworten