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?
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?
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));}}
Es gibt bei SVN kein explizites MOVE-Kommando. Es wird intern immer über ein Add und Delete gelöst
würde schon gern bei meiner Variante mit der svn.exe bleiben....
mal gucken ob es mit copy und delete klappt
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.
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...
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
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...
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.
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
Nur zur Vollständigkeit...
Es lag an der Pfadangabe bzw. Pfadübergabe. Nicht "/" sondern "" 😛