Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie vergleicht Subversion die Dateien?? (https://www.delphipraxis.net/47172-wie-vergleicht-subversion-die-dateien.html)

phlux 7. Jun 2005 12:10


Wie vergleicht Subversion die Dateien??
 
Hi! :hi:

Gibt es hier ein paar Leute die sich mit Subversion auskennen?? Es geht darum, dass ich nicht weiß, wie SVN feststellt ob eine Datei geändert wurde. Vergleicht SVN die bearbeitete Datei mit der Arbeitskopie Byteweise oder nur anhand des Zeitstempels? :stupid:

mfg, phlux :hi:

RavenIV 7. Jun 2005 13:40

Re: Wie vergleicht Subversion die Dateien??
 
aus der beschreibung zu Tortoise (tortoisesvn.tigris.org):
Zitat:

2.3.3. Wie Arbeitskopien das Projektarchiv verfolgen
Für jede Datei in einer Arbeitskopie zeichnet Subversion zwei wesentliche Informationen im .svn
Administrationsordner auf:
• Auf welcher Revision die Datei basiert (dies wird auch Arbeitsrevision genannt)
• Der Zeitpunkt, an dem die Datei zum letzten Mal mit dem Projektarchiv aktualisiert wurde.
Mittels dieser Informationen ist Subversion in der Lage, durch Anfragen an das Projektarchiv herauszufinden,
in welchem der folgenden vier Zustände eine Datei ist:
Unverändert und aktuell
Die Datei wurde weder lokal noch im Projektarchiv verändert. Eine Übertragung und auch
eine Aktualisierungdieser Datei bewirkt nichts.
Lokal verändert und aktuell
Die Datei wurde lokal verändert, aber nicht im Projektarchiv. Eine Übertragung bewirkt ein
Speichern dieser Änderungen im Projektarchiv. Eine Aktualisierung hingegen bewirkt nichts.
Unverändert, aber nicht aktuell
Die Datei wurde lokal nicht verändert, jedoch gibt es Änderungen an der Datei im Projektarchiv.
Eine Übertragung bewirkt nichts, jedoch wird ein Aktualisieren die Änderungen aus
dem Projektarchiv in die lokale Kopie der Datei einfügen.
Lokal verändert und nicht aktuell
Die Datei wurde lokal und im Projektarchiv verändert. Ein Übertragen wird mit einer Fehlermeldung
fehlschlagen. Die Datei muss zuerst Aktualisiert werden, um die Änderungen aus
dem Projektarchiv in die lokale Kopie einzufügen. Falls Subversion nicht in der Lage sein sollte, diese Änderungen selbst zusammenzuführen, muss der Benutzer den Konflikt manuell lösen.
ist damit deine frage geklärt?
ansonsten kann ich dir das SVNbook empfehlen. Zum download bei subversion.tigris.org.

gruessle

nailor 7. Jun 2005 15:10

Re: Wie vergleicht Subversion die Dateien??
 
ich glaube er will wissen, woher svn weiss, ob eine datei "lokal verändert" wurde.

RavenIV 7. Jun 2005 15:15

Re: Wie vergleicht Subversion die Dateien??
 
Zitat:

Zitat von nailor
ich glaube er will wissen, woher svn weiss, ob eine datei "lokal verändert" wurde.

steht doch auch da:
Zitat:

• Der Zeitpunkt, an dem die Datei zum letzten Mal mit dem Projektarchiv aktualisiert wurde.

nailor 7. Jun 2005 15:17

Re: Wie vergleicht Subversion die Dateien??
 
dann wäre jede datei ab der milisekunde nach dem aktualisieren (checkout) nicht mehr aktuell sondern "verändert"

RavenIV 7. Jun 2005 15:29

Re: Wie vergleicht Subversion die Dateien??
 
Zitat:

Zitat von nailor
dann wäre jede datei ab der milisekunde nach dem aktualisieren (checkout) nicht mehr aktuell sondern "verändert"

dan beachte noch den ersten punkt:
Zitat:

• Auf welcher Revision die Datei basiert (dies wird auch Arbeitsrevision genannt)

nailor 7. Jun 2005 15:38

Re: Wie vergleicht Subversion die Dateien??
 
nochmal:

legende :
"was mach ich" ("ergebnis")

runterladen (aktuell)
warten (aktuell)
öffnen ändern speichern (geändert)
öffnen ändern speichern timestamp zurücksetzen (???)
timestamp ändern (???)
neue datei drüberkopieren (geändert)
gleiche datei drüberkopieren (geändert)
anderes betriebssystem booten datei ändern [mit ohne timestamp ändern] (???)
...

Basilikum 7. Jun 2005 16:28

Re: Wie vergleicht Subversion die Dateien??
 
Zitat:

Zitat von nailor
runterladen (aktuell)
warten (aktuell)
öffnen ändern speichern (geändert)
öffnen ändern speichern timestamp zurücksetzen (geändert)
timestamp ändern (aktuell)
neue datei drüberkopieren (geändert)
gleiche datei drüberkopieren (geändert)
anderes betriebssystem booten datei ändern [mit ohne timestamp ändern] (geändert)
...

Subversion untersucht den tatsächlichen Fileinhalt...

mittels TortoiseSVN kannst Du Dir sogar zeigen lassen, welche Zeilen geändert wurden (Diff)

bei gleichzeitigen Änderungen verschiedener Nutzer kann SVN diese mergen, sofern sie nicht im Konflikt stehen...

nailor 8. Jun 2005 11:00

Re: Wie vergleicht Subversion die Dateien??
 
ws ist imho unmöglich, dass der komplette fileinhalt bei jedem checkout/checkin geprüft wird. da kann höchstens sowas wie der timestamp oder ein hash übertragen werden (oder die dateizugriffe werden auf betriebssystem-ebene mitgeloggt). und nur wenn dabei ein verdacht entsteht, wird genau nachgeschaut.

Basilikum 8. Jun 2005 11:44

Re: Wie vergleicht Subversion die Dateien??
 
Zitat:

Zitat von nailor
ws ist imho unmöglich, dass der komplette fileinhalt bei jedem checkout/checkin geprüft wird.

den Fileinhalt kann man auch durch reinen Hash-Vergleich mit grosser Sicherheit auf Gleichheit überprüfen... TortoiseSVN (vermutlich SVN-Clients allgemein) hält einen 128bit-Hash (MD5) der "Working Base"-Datei bereit (in der Datei .svn\entries)... und da Quell-Code-Files meist eh nicht riesig sind, kann so relativ rasch auf Gleichheit geprüft werden...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
Seite 1 von 2  1 2      

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