Συγκρούσεις
Επισκόπηση
Ο πελάτης επιφάνειας εργασίας του Nextcloud ανεβάζει τις τοπικές αλλαγές και κατεβάζει τις απομακρυσμένες αλλαγές. Όταν ένα αρχείο έχει αλλάξει τόσο στην τοπική πλευρά όσο και στην απομακρυσμένη μεταξύ των εκτελέσεων συγχρονισμού, ο πελάτης δεν θα μπορέσει να επιλύσει μόνος του την κατάσταση. Θα δημιουργήσει ένα αρχείο σύγκρουσης με την τοπική έκδοση, θα κατεβάσει την απομακρυσμένη έκδοση και θα ειδοποιήσει τον χρήστη ότι προέκυψε μια σύγκρουση που χρειάζεται προσοχή.
Παράδειγμα
Φανταστείτε ότι υπάρχει ένα αρχείο με όνομα mydata.txt
στον συγχρονισμένο φάκελό σας. Δεν έχει αλλάξει για κάποιο διάστημα και περιέχει το κείμενο «contents» τόσο τοπικά όσο και απομακρυσμένα. Τώρα, σχεδόν ταυτόχρονα, εσείς το ενημερώνετε τοπικά να λέει «local contents» ενώ το αρχείο στον διακομιστή ενημερώνεται να περιέχει «remote contents» από κάποιον άλλο.
Καθώς προσπαθεί να ανεβάσει τις τοπικές σας αλλαγές, ο πελάτης επιφάνειας εργασίας θα παρατηρήσει ότι η έκδοση του διακομιστή έχει επίσης αλλάξει. Δημιουργεί μια σύγκρουση και τώρα θα έχετε δύο αρχεία στον τοπικό σας υπολογιστή:
mydata.txt
που περιέχει «remote contents»mydata (conflicted copy 2018-04-10 093612).txt
που περιέχει «local contents»
Σε αυτήν την κατάσταση, το αρχείο mydata.txt
έχει τις απομακρυσμένες αλλαγές (και θα συνεχίσει να ενημερώνεται με περαιτέρω απομακρυσμένες αλλαγές όταν αυτές συμβαίνουν), αλλά οι τοπικές σας τροποποιήσεις δεν έχουν σταλεί στον διακομιστή (εκτός εάν ο διακομιστής έχει ενεργοποιήσει το ανέβασμα συγκρούσεων, δείτε παρακάτω).
Ο πελάτης επιφάνειας εργασίας σας ειδοποιεί για αυτήν την κατάσταση μέσω ειδοποιήσεων συστήματος, του εικονιδίου στη γραμμή εργασιών και ενός κίτρινου σήματος «unresolved conflicts» στο παράθυρο ρυθμίσεων λογαριασμού. Κάνοντας κλικ σε αυτό το σήμα εμφανίζεται μια λίστα που περιλαμβάνει τις άλυτες συγκρούσεις και κάνοντας κλικ σε μία από αυτές ανοίγει ένα παράθυρο του Εξερευνητή που δείχνει στο σχετικό αρχείο.
Για να επιλύσετε αυτήν τη σύγκρουση, ανοίξτε και τα δύο αρχεία, συγκρίνετε τις διαφορές και αντιγράψτε τις τοπικές σας αλλαγές από το αρχείο «conflicted copy» στο βασικό αρχείο όπου είναι εφαρμόσιμο. Σε αυτό το παράδειγμα, μπορείτε να αλλάξετε το mydata.txt
να λέει «local and remote contents» και να διαγράψετε το αρχείο με το «conflicted copy» στο όνομά του. Με αυτόν τον τρόπο, η σύγκρουση επιλύεται.
Ανέβασμα συγκρούσεων (πειραματικό)
Από προεπιλογή, το αρχείο σύγκρουσης (το αρχείο με το «conflicted copy» στο όνομά του που περιέχει τις τοπικές σας συγκρουόμενες αλλαγές) δεν ανεβάζεται στο διακομιστή. Η ιδέα είναι ότι εσείς, ο δημιουργός των αλλαγών, είστε το καταλληλότερο άτομο για την επίλυση της σύγκρουσης και η εμφάνιση της σύγκρουσης σε άλλους χρήστες μπορεί να δημιουργήσει σύγχυση.
Ωστόσο, σε ορισμένα σενάρια είναι πολύ λογικό να ανεβάζονται αυτές οι συγκρουόμενες αλλαγές, ώστε η τοπική εργασία να μπορεί να γίνει ορατή ακόμα και αν η σύγκρουση δεν επιλυθεί αμέσως.
Στο μέλλον μπορεί να υπάρχει ένας διακομιστικός διακόπτης για αυτήν τη συμπεριφορά. Προς το παρόν, μπορεί ήδη να δοκιμαστεί ορίζοντας τη μεταβλητή περιβάλλοντος OWNCLOUD_UPLOAD_CONFLICT_FILES=1
.