Jak rozwidlić istniejący pakiet meteorytu w czysty sposób?
Próbuję znaleźć najlepszy / najczystszy sposób na rozwidlenie istniejącego pakietu w Atmosphere w ramach projektu. Spotkałem się z kilkoma przypadkami, gdy istniejący pakiet wymagał pewnych modyfikacji i musiałem go rozwidlić.
O ile wiem, istnieją następujące opcje. Niestety, wszystkie z nich mają swoje własne problemy i jeszcze nie znalazłem idealnego rozwiązania. Użyjęmeteor-router
jako przykład:
Kroki:
usunąćpackages/router/.git/
edytowaćpackages/.gitignore
i usuń linię „router”usuń router z twojegosmart.json
Dodajpackages/router
do repozytorium projektu i zatwierdźteraz dokonuj zmian (w ten sposób twoje początkowe zatwierdzenie jest czystą wersją i możesz sam określić, co sam zmieniłeś)Zalety:
łatwe do osiągnięcia i zrozumieniacały kod, na którym polegasz, można znaleźć w repozytorium projektuNiedogodności:
tracisz całą historię oryginalnych repozytoriówtrudno jest zaktualizować do nowszej wersjiciężko jest wprowadzić zmiany z powrotem do oryginalnego projektuNie rozważaj tego nawet w przypadku najprostszych pakietów!
2. Rozwidlaj github, a następnie ...Aby rozwidlić pakiet na githubie, możesz sprawdzić swójsmart.lock
plik, aby zobaczyć, które repozytorium jest używane. Przejdź do strony github tego repozytorium i rozłóż ją.
Następnie masz trzy opcje:
2a. Dodaj go jako podmoduł gitWięcej informacji na temat submodułów git:http://git-scm.com/book/en/Git-Tools-Submodules
Kroki:
Zobacz link powyżej o tym, jak inicjować / tworzyć / aktualizować submodułUsuń paczkę z twojegosmart.json
Zalety:
Wersje submodułów są połączone z twoim projektemZmiany są natychmiast podnoszoneNiedogodności:
Wszyscy programiści muszą działaćgit submodule init
po raz pierwszy iupdate
aktualizowaćPodczas edycji kasy musisz być świadomy problemów z submodułamiPrzeczytaj o innych problemach z submodułami2b. Edytuj swój projektsmart.json
użyć swojej wersjiKroki:
W Twoimsmart.json
, odnaleźć"router": {}
i dodaj"git": "https://github.com/USER/meteor-router.git"
wewnątrz pustego{}
.Opcjonalnie dodaj a"branch"
lub"tag"
.Zalety:
Nadal możesz używać Meteorite do zarządzania zewnętrznymi pakietamiBędzie działać automatycznie dla innych programistów i środowisk wdrażaniaNiedogodności:
Kod w folderze pakietów nie jest edytowalny, ponieważ nie jest repozytorium gitMeteoryt nie będzie automatycznie aktualizowany do najnowszej wersji za każdym razem, gdy go uruchomisz(Sugerowana poprawa meteorytu: zezwól na instalowanie pakietów w edytowalnej formie, tak jak pip Pythona pozwala na użycie parametru '-e')
2c. Klonuj poza swoim projektem i dodaj"path"
dosmart.json
Kroki:
Sklonuj pakiet do miejsca poza projektemPodobny do 2b, dodaj a"path"
dla Twojejsmart.json
wskazać meteoryt na lokalną kasęZalety:
Możesz dowolnie edytować pakiet, a Meteor automatycznie odbierze zmiany.Niedogodności:
Jeśli to zrobiszsmart.json
, najprawdopodobniej złamiesz wszystkie inne środowiska programistyczne / wdrożeniowe ...Jakiej metody używasz? Jak radzisz sobie z wadami tej metody?
Mogłem przegapić pewne problemy z tymi rozwiązaniami.