-
Notifications
You must be signed in to change notification settings - Fork 23
Repository History
Σαν 3η μέθοδο προσπάθειας για να λύσω το πρόβλημα, δοκίμασα grafts, με το git replace --graft a32be aea18 για δημιουργία του graft σαν placeholder, και μετά χρησιμοποίησα git filter-branch χωρίς φίλτρα για να κλειδώσω το graft στο ιστορικό, επαναγράφοντας όλα τα commits στο αποθετήριο βάση αυτού.
Λοιπόν έχουμε και λέμε, μετά από git push --force origin master στο fork φυσικά:
Το master δείχνει (περίπου 1200 λιγότερα commits):
Για πρώτη επαλήθευση κοιτάμε το ιστορικό από το git init σε γράφο με git log --graph:
Το ιστορικό του αποθετηρίου μέσω του GitHub (για δεύτερη επαλήθευση):
Σαν τρίτη επαλήθευση βλέπουμε το 2ο commit του αποθετηρίου που τώρα είναι το πρώτο commit του @epidrome , και δίνουμε προσοχή στα 821 αλλαγμένα αρχεία και 47,000 additions.
Το VM που σήκωσα συγκεκριμένα για αυτό το θέμα έχει 800 commands history που όλα είναι για το git... εφτυσα αιμα λιγο.
Το θέμα έχει λυθεί θεωρητικά, πρακτικά όμως όχι, έχει ακόμα δουλειά και τέστ να τρέξω για να βεβαιωθώ για την λύση γιατί μιλάμε για κοινό αποθετήριο, δεν θέλω να έχω κάτι που μου ξέφυγε. Αφού τελειώσουν όλοι το δύσκολο θέμα που έχουν μέχρι 30 απριλίου και έπειτα θα μιλήσουμε όλοι οι contributors μαζί ώστε να προχωρήσω στην διαδικασία αλλά για το κύριο αποθετήριο.
Για να είμαστε έτοιμοι για όλα θα τρέξω τεστ στο δικό μου fork με δικά μου pull requests κτλ για να δω πως συμπεριφέρονται τα παλία branches που είχα, και γενικά πώς θα βγάλουμε οδηγίες μετάβασης.
Περιμένω σχόλια κυρίως από @epidrome @NikosAvg @jimDragon @GIANNIS-AGGELIS @p15zerv και όποιος άλλος θέλει.
αν θες κάνε το δημόσιο κάπου στην περιοχή σου στο γκιτχαμπ να το δούμε με τα εργαλεία οπτικοποίησης του γκιτχαμπ
Εκανα push το master εδω: https://github.com/constantinexisc/site-gr
Στο contributors tab βλεπουμε μονο τους "δικους" μας.
Επίσης ενας εξτρα ελεγχος που σκεφτηκα να κανω, εκανα clone το κεντρικο αποθετηριο σε καινουργιο φακελο και ετρεξα linux diff (οχι git diff) στα 2 αποθετηρια, η μονη αλλαγη που βρηκε μεταξυ των ειναι το τελευταιο commit στο readme που κανατε πριν 5 μερες. Αρα με 4η επαληθευση ειμαι σιγουρος οτι δεν εκανα κατι λαθος.
(κλικ για να ανοιξει σε μεγαλο παραθυρο η εικονα)

Ετρεξα τις αλλαγες και με τα local branches, αυτα απο οτι καταλαβα ενημερωθηκαν κανονικα για τις αλλαγες που γινανε στο master, απλα πρεπει να τα εχω τοπικα και να κανω push --force --all για να γινουν update ολα τα κλαδια στο github.
Δύο εντολές είναι τελικά:
$ git replace --graft a32be aea18
$ git filter-branch --tag-name-filter cat -- --all
Στην δεύτερη εντολή δεν είναι λάθος το μονό --, έτσι πρέπει να είναι και μετά το --all, καλύτερα να το κάνετε copy-paste.
Κάνει αυτόματα rewrite και τα κλαδιά ώστε να είναι σωστά μετά από την εκτέλεση της διαδικασίας.
Όπως είπε ο @jimDragon για το 2ο που ζητάτε κανένας δεν θα μπορεί να κάνει αιτήματα από αυτό το αποθετήριο στο δικό μου, αφού τα αποθετήρια είναι "divergent" μετά από το rewrite των commits, θα πρέπει τα fork να γίνουν από το καινούργιο αποθετήριο για να δουλέψουν τα pull request.