Frage

Szenario:

Ich verwende SVN: Externale, um Microsoft.Practices.Servicelocation von Codeplex zu greifen. Wenn Sie jedoch das CSProj-File in meinem eigenen Projekt verweisen, wird von 2005 bis 2008 ein Upgrade verursacht. Dadurch wird meine Kopie der Projektdatei von der Basiskopie unterscheidet, und ich kann das Projekt nicht von Subversion aktualisieren.

Eine Aktualisierung von ... deps microsoft.Practices.Servicelocation führt zu:

Command          Update
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorProvider.cs
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocator.cs
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\Readme.txt
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\Properties
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\Microsoft.Practices.ServiceLocation.csproj
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\IServiceLocator.cs
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.Desktop.cs
Tree conflict    ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.cs
Completed        At revision: 43682
warning!         One or more files are in a conflicted state.

Eine Aktualisierung von ... deps ergibt sich nach:

Command          Update
Completed        At revision: 0

Eine Aktualisierung der Stammbeschreibung ergibt:

Command           Update
External          ...\deps\Microsoft.Practices.ServiceLocation
External failed   ...\deps\Microsoft.Practices.ServiceLocation
Error             Working copy '...\deps\Microsoft.Practices.ServiceLocation' locked
Error             Please execute the 'Cleanup' command.
Completed         ...\deps\Microsoft.Practices.ServiceLocation - at revision: 0

Die Messung behauptet, dass die Arbeitskopie gesperrt ist, scheint falsch zu sein, und die Release -Sperre für Microsoft.Practices.Servicelocation -Ordner führt zu einer Nachricht, in der angegeben ist: "Es gibt nichts zu entsperren. Keine Datei hat eine Sperre in dieser Arbeitskopie." Gleiches Ergebnis, wenn ich den Befehl an der Stamme ausführe.

Die Ausführung einer Reinigung hat nichts verändert.

Ich benutze Tortoisesvn.

  1. Kann ich Visual Studio 2008 mitteilen, dass er ein Projekt/Verzeichnis als readonly behandelt, um ein Upgrade zu vermeiden?
  2. Gibt es einen geheimen Subversionsbefehl, den ich ausführen kann, damit dies funktioniert?
  3. Warum verursacht eine Aktualisierung von Dateien, die nicht geändert wurden, einen Baumkonflikt?

Bearbeiten: Ich habe einige gegoogelt und die Subversion -Dokumentation gefunden, in der Baumkonflikte erklärt werden http://svnbook.red-tean.com/nightly/en/svn.tour.treeconflicts.html. Ich habe meine dritte Frage geändert, da ich nicht verstehe, warum ich einen Baumkonflikt bekomme, wenn ich Dateien aktualisiert habe, die sich nicht geändert haben.

War es hilfreich?

Lösung

Visual Studio 2008 wird eine schreibgeschützte Lösung ziemlich glücklich öffnen (dies ist die normale, nicht überprüfte Verwendung).

VS2008 kann jedoch nicht gegen 2005 Lösungsdateien öffnen, sodass es immer versucht, ein Upgrade zu verbessern. Sie scheinen nach einer Möglichkeit zu suchen, 2008 ohne Upgrade eine 2005er Lösung zu eröffnen, und ich denke nicht, dass dies möglich ist.

Erhalten Sie entweder eine Kopie von VS 2005 (dies könnte eine Express -Ausgabe sein) oder das Codeplex -Projekt als Ganzes auf Upgrade (erinnern Sie sich, dass VS 2008 auf .NET 2.0 abzielt).

Andere Tipps

Es gibt mehrere Optionen, je nachdem, wie sich Sie mit dem Projekt befassen und ob Sie es ändern werden.

Für ein Projekt verwende ich in erster Linie für die Bibliotheken die Open -Source -Projekte nicht in meine Lösung - nur die DLLs, die ich in meinem Quellvertretungsrepository in einem Bibliotheksordner behalte.

Wenn Sie debuggen, können Sie in den Code der Bibliothek in VS2008 eintreten, ohne die Projektdatei 2005 tatsächlich zu öffnen. Es ist also kein Update erforderlich.

Wenn ich an dem Code für die OpenSource -Bibliothek arbeiten muss, öffne ich sie in seiner eigenen Lösung. Wenn es auf VS2008 aktualisieren muss, lasse ich es - es ist keine große Sache, da sich nur die Projektdateien geändert haben - nicht der Quellcode. Da es sich bei der Quellensteuerung befindet, können Sie die Projektdateien jederzeit in die Originale zurückversetzen oder Ihre neuen Kopien umbenennen und 2 CSPROJ -Dateien nebeneinander aufbewahren.

Ich mache nur ein SVN-Update mit Schildkröte bei den Open-Source-Projekten und bekomme keine Konflikte. SVN wird alle Änderungen in meine Kopie verschmelzen. Wenn ich Änderungen habe, die für das Open-Source-Projekt benötigt werden, sende ich einen Patch und verpflichte mich nicht aus meiner Kopie.

Wenn dies ein Projekt ist, dass Sie ein aktiver Entwickler sind und die anderen Teammitglieder in VS2005 bleiben müssen, können Sie VS2005 ohne Probleme laden. Ich hatte 4-5 Kopien von VS auf derselben Maschine installiert - der einzige Nachteil ist der Speicherplatz.

Es hört sich so an, als müssten Sie möglicherweise eine neue Überprüfung des Projekts in einen neuen Ordner durchführen, wenn Sie zu viele Konflikte haben. Dann können Sie ein gutes Diff -Tool verwenden, um die Konflikte manuell zu lösen - ich benutze Winmerge.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top