Laden...

svn console aus programm aufrufen

Erstellt von mcneal vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.434 Views
M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren
svn console aus programm aufrufen

Hi,

ich möchte ein svn move auf einer Datei/Ordner ausführen und das von meinem Programm aus.

was ich bisher gefunden habe ist

Process.Start("svn.exe", @"/c svn checkout C:\TestBuildDevelopment\Code");

wie müsste das denn nun für einen Move Befehl aussehen?

probiere sowas hier

Process.Start("svn.exe",@"svn move ""originalDirNam newDirName");

aber das tuts noch nicht. Ich finde auch wenig dazu wie man sowas macht

Wer kann helfen?

F
10.010 Beiträge seit 2004
vor 10 Jahren
M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

hehe^^

ja schick aber auch wenn ich entsprechendes eingebe passiert nicht das was ich möchte....

vlt mal mehr infos...

habe einige Ordner und Dateien umbenannt
svn denkt dann, die ordner sind weg und möchte für die anderen nen add haben aber das soll über das move gelöst werden

Ich nutze das command line tool von tortoiseSVN.

Muss ich eigentlich jedes umbenannte File und Ordner einzelnd "moven" , also das direkt jedes mal nach dem umbenennen aufrufen? Ja oder?

309 Beiträge seit 2008
vor 10 Jahren

Warum nutz du nicht eine Subversion Libary für .net z.B. SharpSVN ?

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

S
64 Beiträge seit 2008
vor 10 Jahren

Es gibt bei SVN kein explizites MOVE-Kommando. Es wird intern immer über ein Add und Delete gelöst

http://svnbook.spears.at/nightly/de/svn.ref.svn.c.move.html

M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

würde schon gern bei meiner Variante mit der svn.exe bleiben....

mal gucken ob es mit copy und delete klappt

S
64 Beiträge seit 2008
vor 10 Jahren

Ich glaube, du hast da etwas falsch verstanden oder ich mich nicht richtig ausgedrückt.

Die Befehle move und rename machen schon das, was du möchtest, aber in den Logs des Repositories wird immer ein delete für den alten und ein add für den neuen Namen stehen.

Es wäre, als würde man zuerst z. B. die alte Datei an einen neuen Ort kopieren und diese dann löschen, jedoch mit dem Nachteil, dass in diesem Falle die History verloren geht.

M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

ahh ok du meinst also, dass es eigentlich schon klappt?

Wenn ich es ausgeführt habe und mir dann mal den Ordner im normalen Explorer angucke, ist an dem Ordner immernoch nen Fragezeichen...

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo mcneal

Process.Start("svn.exe", @"/c svn checkout C:\TestBuildDevelopment\Code");  

das kommt mir schon mal komisch vor. Verstehen würde ich

Process.Start("cmd.exe", @"/c svn checkout C:\TestBuildDevelopment\Code");

oder

Process.Start("svn.exe", @"checkout C:\TestBuildDevelopment\Code");
@"... move ""originalDirNam newDirName"  

Und hier passen die Anführungsstriche sicher nicht. Entweder

@"... move originalDirNam newDirName"

oder sicherer

@"... move ""originalDirNam"" ""newDirName"""

herbivore

M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

hmm leider immernoch nicht....

ich gehe doch richtig davon aus, dass wenn ich mir die Ordner angucke, dann kein Fragezeichen sondern ein rotes Ausrufezeichen stehen müsste, wie bei einer bearbeiteten Datei, die nicht umbenannt wurde oder?

vlt mache ich es zum flaschen Zeitpunkt?

hier nochmal etwas mehr Einblick


if (dir.FullName.Contains("test"))
                    {
                        string originalDirName = dir.FullName;
                        string dirName = dir.FullName.Replace("test"," ");
                        string newDirName = dirName;
                        dir.MoveTo(newDirName);  //Ordner umbenennen
                        Process.Start("svn.exe", @"move ""originalDirName"" ""newDirName""");
                    }

kann er den move nicht mehr machen, weil er den Ordner nicht mehr findet? Aber eher ist doch ach iwi komisch...

F
10.010 Beiträge seit 2004
vor 10 Jahren

Du kannst davon ausgehen das Du nicht verstanden hast welche Produkte Du einsetzt.

Du redest einmal von den Commandline Tools von Subversion und redest dann von den, im Explorer durch TortoiseSVN erzeugten, Icons.
Das sind 2 unterschiedliche Produkte.

Und ja da kann ständig was schief laufen, weshalb du einmal Commit machen solltest um zu sehen was an Aufträgen tatsächlich draußen sind.

M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

also wenn ich in der Eingabeaufforderung "per Hand" zum Ordner navigiere und dann sage:

svn move bla blub

und dass dann ausführe kann ich mir danach meine Ordner im explorer angucken und sehe, dass der Ordner quasi nur umbenannt und neu geadded wurde

nichts anderes versuche ich doch nun von meinem code aus, nur dass er es halt nicht macht und ich denke mal, dass ich einfach im Befehlsaufruf was falsch mache und nicht sehe was es ist

M
mcneal Themenstarter:in
56 Beiträge seit 2010
vor 10 Jahren

Nur zur Vollständigkeit...

Es lag an der Pfadangabe bzw. Pfadübergabe. Nicht "/" sondern "&quot; 😛