
Πώς μπορώ να δημιουργήσω ένα υποκατάστημα στο SVN;

 
Πώς μπορώ να δημιουργήσω ένα υποκατάστημα στο SVN;
==================================================



Διακλάδωση σε ανατροπή διευκολύνεται από ένα πολύ πολύ ελαφριά και αποτελεσματική εγκατάσταση αντιγραφή.


Διακλάδωση και tagging είναι ουσιαστικά η ίδια. Απλά αντιγράψτε ολόκληρο το φάκελο στο χώρο αποθήκευσης κάπου αλλού στο αποθετήριο χρησιμοποιώντας την `svn copy`εντολή.


Βασικά, αυτό σημαίνει ότι είναι κατά συνθήκη τι αντιγραφή ενός φακέλου σημαίνει - είτε πρόκειται για ένα αντίγραφο ασφαλείας, ετικέτα, υποκατάστημα ή whater. Ανάλογα με το πώς θέλετε να σκεφτείτε για τα πράγματα (συνήθως ανάλογα με το ποιο εργαλείο SCM έχετε χρησιμοποιήσει στο παρελθόν) θα πρέπει να δημιουργηθεί μια δομή φάκελο μέσα αποθήκευσης σας για να υποστηρίξει το στυλ σας.


Κοινή στυλ είναι να έχουμε ένα σωρό φακέλους στην κορυφή του χώρου αποθήκευσης σας ονομάζεται `tags`, `branches`, `trunk`, κλπ - που σας επιτρέπει να αντιγράψετε όλη σας `trunk`(ή υπο-ομάδες) στους `tags`ή / και `branches`φακέλους. Αν έχετε περισσότερα από ένα έργο μπορεί να θέλετε να αναπαράγουν αυτό το είδος της δομής κάτω από κάθε έργου:


Μπορεί να πάρει λίγο χρόνο για να συνηθίσουν στην ιδέα - αλλά δουλεύει - απλά φροντίστε να (και την ομάδα σας) είναι σαφείς σχετικά με τις συμβάσεις που πρόκειται να χρησιμοποιήσετε. Είναι επίσης μια καλή ιδέα να έχουμε μια καλή σύμβαση ονοματοδοσίας - κάτι που εξηγεί γιατί το υποκατάστημα / tag έγινε και κατά πόσο εξακολουθεί να είναι σκόπιμο - να εξετάσει τρόπους κλάδους αρχειοθέτησης που είναι παρωχημένες.

 

Subversion καθιστά εύκολη (μερικοί σκέφτονται πάρα πολύ εύκολο) για να δημιουργήσετε ένα νέο κατάστημα, χρησιμοποιώντας την εντολή αντίγραφο svn.



```
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
           svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
      -m "Creating a branch of project"

```
 

Κανονικά θα το αντιγράψετε σε svn + ssh: //host.example.com/repos/project/branches/mybranch, έτσι ώστε να μπορεί να κρατήσει πολλά υποκαταστήματα στην αποθήκη, αλλά η σύνταξη σας είναι έγκυρη.


Εδώ είναι μερικές συμβουλές για το [πώς να δημιουργήσει αποθετήριο διάταξή σας](http://svnbook.red-bean.com/en/1.1/ch04s07.html) .

 

Εάν ακόμη και το σχέδιο για τη συγχώνευση καταστημάτων σας, σας το προτείνω να εξετάσουμε αυτό το θέμα:


[Svnmerge.py](http://www.orcaware.com/svn/wiki/Svnmerge.py)


Ακούω Subversion 1.5 χτίζει πάνω της συγχώνευσης παρακολούθησης σε, δεν έχω καμία εμπειρία με αυτό. Το έργο μου είναι σε 1.4.x και svnmerge.py είναι ένας αποταμιευτής ζωής!

 

Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα κλαδί από ένα όνομα κορμό (όπως «TEST») και στη συνέχεια χρησιμοποιήστε:



```
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST

```
 


```
svn cp /trunk/ /branch/NEW_Branch

```

Αν έχετε κάποιες τοπικές αλλαγές στο πορτ-μπαγκάζ στη συνέχεια να χρησιμοποιήσετε `Rsync`για να συγχρονίσετε τις αλλαγές



```
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch

```
 

* Δημιουργήστε ένα νέο φάκελο έξω από το τρέχον έργο σας. Μπορείτε να δώσετε οποιοδήποτε όνομα. (Παράδειγμα: Έχετε ένα ταμείο για ένα έργο που ονομάζεται «Προσαρμογή» Και έχει πολλά έργα, όπως «Project2» «Project1», .... Και θέλετε να δημιουργήσετε ένα υποκατάστημα της «Project1» Έτσι, η πρώτη ανοίγει το ".. Προσαρμογή», ​​κάντε δεξί κλικ και να δημιουργήσετε ένα νέο φάκελο και να του δώσετε ένα όνομα,“Project1Branch”).
* Κάντε δεξί κλικ στο "Myproject1" .... TortoiseSVN -> Υποκατάστημα / Tag.
* Επιλέξτε αντίγραφο εργασίας.
* Ανοίξτε το πρόγραμμα περιήγησης .... Απλά το δικαίωμα των παράλληλων με θέμα «To URL».
* Επιλέξτε προσαρμογής ..... δεξί κλικ στη συνέχεια, Προσθήκη φακέλου. και να περάσουν από το φάκελο που έχετε δημιουργήσει. Εδώ είναι «Project1Branch». Τώρα ΠΑΤΗΣΤΕ το κουμπί OK για να προσθέσετε.
* Πάρτε την ολοκλήρωση της παραγγελίας αυτής της νέας ματσάκι.
* Πάλι πηγαίνετε στο έργο σας, το οποίο υποκατάστημα που θέλετε να δημιουργήσετε. Δεξί κλικ TorotoiseSVN -> κλάδο / tag. Στη συνέχεια, επιλέξτε αντίγραφο εργασίας. Και μπορείτε να δώσετε τη διεύθυνση URL ως όνομα κατάστημα σας. όπως {διεύθυνση IP σας / svn / ΑΑΑΑ / Προσαρμογή / Project1Branch}. Και μπορείτε να ορίσετε το όνομα του URL έτσι θα δημιουργήσετε το φάκελο μόνο με αυτό το όνομα. Όπως {Η διεύθυνση IP σας / svn / ΑΑΑΑ / Προσαρμογή / Project1Branch / MyProject1Branch}.
* Πατήστε το πλήκτρο ΟΚ. Τώρα μπορείτε να δείτε τα αρχεία καταγραφής σε ... αντίγραφο εργασίας σας θα αποθηκεύονται στον κλάδο σας.
* Τώρα μπορείτε να πάρετε ένα check out ... και σας επιτρέπουν να απολαμβάνετε την εργασία σας. :)

 

Top tip για τους νέους χρήστες SVN? Αυτό μπορεί να βοηθήσει λίγο με το να πάρει τις σωστές διευθύνσεις URL γρήγορα.


Τρέξτε `svn info`να εμφανιστούν χρήσιμες πληροφορίες σχετικά με την τρέχουσα check-out κλάδο.


Η διεύθυνση URL θα πρέπει (αν εκτελέσετε svn στο φάκελο root) θα δώσει το URL θα πρέπει να αντιγράψετε από.


Επίσης, για να μεταβείτε στο νεοσύστατο κλάδο, χρησιμοποιήστε την `svn switch`εντολή:



```
svn switch http://my.repo.url/myrepo/branches/newBranchName

```
 

Αν είστε repo είναι διαθέσιμη μέσω https, μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να υποκατάστημα ...



```
svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"

```
 

Svn διακλάδωση είναι εντελώς άχρηστη, είναι 100% ίδιο πράγμα, σαν να δημιουργήσετε εντελώς νέο αποθετήριο svn.


Αντιγράφει ολόκληρο το σύστημα αρχείων του κάτι που είναι διακλάδωση, και το μόνο όφελος που έχετε είναι η ικανότητα να συγχωνευθούν υποκατάστημα πίσω στη βάση, αλλά μπορείτε να κάνετε το ίδιο πράγμα με εντελώς νέο αποθετήριο, αν έχετε δημιουργήσει αντί υποκατάστημα ...


Ίσως ακόμα είναι καλύτερα να δημιουργήσετε νέο αποθετήριο, στη συνέχεια, διαγράψτε το, θα εξοικονομήσετε χώρο server!


Ας ελπίσουμε ότι η ομάδα SVN θα το διορθώσουμε στο μέλλον, και να δημιουργήσει υποκαταστήματα με βάση την διαφορά αρχείο, αντί να αντιγράφουν ολόκληρους φακέλους ... 

 