Nasıl nrepl-ritz-jack-in yapmak işe uzaktan üzerinde / Emacs SERSERİ miyim
Ben ne istiyorum:
Uzak bir sitede clojure bir program, hadi mccarthy
arıyor.
Yapmak istediğim şey benim laptop nrepl-ritz
bağlanmak, tercihen nrepl-ritz-jack-in
kullanıyor. Jack yerel bir program için gayet iyi çalışıyor, ama uzak bir program bağlanmak için görünmüyor.
Deneme 1
C-x C-f/mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-xnrepl-ritz-jack-in
Sonuç
Emacs askıda görünüyor. Eğer *nrepl-server*
tampon gidersem, bunu görüyorum
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.flatland.drip.Main.invoke(Main.java:117)
at org.flatland.drip.Main.start(Main.java:88)
at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)
(ve diğer satırlar ton da...)
mccarthy
öyle açık nrepl-ritz-jack-in
uzak bir dosya olduğunu algılayamadı benim laptop, ama değil drip
kullanıyorum. Düzenli eski.
Girişimi 2
Ben de başlangıç mccarthy
nrepl-ritz
lein
kullanımı: bir çalıştı
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Benim laptop bir ileri noktası yerel I 42874
mccarthy
42874
bağlanır:
ssh -L 42874:localhost:42874 -N mccarthy
O zaman, benim yerel Emacs:
(require 'nrepl-ritz)
M-xnrepl
Host: 127.0.0.1
Port: 42874
Bu bana bir bağlantı verir:
; nREPL 0.1.7-preview
user>
Bunu test etmek için, ben yönetiyorum
M-xnrepl-ritz-threads
Bana konuları güzel bir tablo verir.
M-xnrepl-ritz-break-on-exception
user> (/ 1 0)
Sonuç
Bu kilitleniyor, ama bazen bazı yeniden kullanılabilir ile gizli bir hata ayıklama tampon gösterir. Eğer bu özel programa geçmek için söylerim, asla ÇOĞALTMA için geri kontrol sağlar.
Aramalar bol yaptım ama bir şey daha belirli almak mümkün olmamıştır "lein yolunuz açık olduğundan emin olun" (Ve bu, her iki makine...) yaptım.
CEVAP
Gıt hakkında en çok yanlış anlaşılan şeylerden biri dağıtılmış doğası olduğunu, ve ben yanlış olabilir, bence. Bu çok farklı istesin SVN davranış mimik rağmen çalışabilirsiniz şekillerde subversion söylemek için yapar. Sorun büyük ama aynı zamanda yanıltıcı olan herhangi bir iş akışı yapacak çok fazla.
Eğer çekirdek geliştirme anlayışım (odaklanacağım) hakkım varsa, herkes çekirdek geliştirmek için kendi git kendi deposu vardır. Orada bir depo, linux-2.6.serbest depo görevi gören gıt, Torvalds tarafından sonra baktım. İnsanlar buraya "" şube. bırakın karşı bir özelliği geliştirmeye başlamak istiyorsanız clone
Diğer depoları biraz geliştirme yapmak. Fikri bir çalışma "" özelliği. yeni almışsın gibi linux-2.6, böyle bir noktaya kadar istediğiniz gibi birçok kez olarak daldan klon Bu hazır olduğunda, o zaman, onların içine deponuzdan bu kolu çekin ve birleştirme yapacak birini güvenilir olarak kullanılabilir mainstream içine yapabilirsiniz. Linux çekirdeği linux-2.6 ulaşıncaya kadar çeşitli düzeylerde (Teğmen) güvenilir olur.bu hale gıt "çekirdek".
Şimdi burada kafa karıştırıcı olabiliyor. Şube adları depoları tutarlı olmaya hiç gerek yok. 34 ** origin
'benim depo bir dalında yüksek lisans vanilla-code
aradı. bir şube alabilirsiniz Neler olduğunu biliyorum sağlayan, gerçekten - tüm depoları eşine anlamda dağıtılır birbirimize ve sadece SVN gibi birkaç bilgisayar arasında paylaşılan hiç önemli değil.
Yani, akılda tüm bu olan:
- Dallanma onların ne yaptıklarını her programcı olduğunu düşünüyorum. İhtiyacınız olan tüm bültenleri vb yönetmek için merkezi bir deposudur. Gövde
head
olabilir. Bültenleri etiketler dalları olabilir ve muhtemelen kendilerini düzeltmeleri şubeleri vardır. Aslında, muhtemelen yama tutmak, böylece dalları gibi açıklamaları yapmak istiyorum. - Birleştirme ve rebase istiyorum. Eğer örneğin siz bir depo, klon, şube ve dev, sonra çekme
origin
olmalıdır, depo, muhtemelen yapmak başka bir şube ve birleştirme sonmaster
yourbranch
böylece bir başkası çekin değişiklikleri gibi küçük bir çaba olarak mümkün. Çok nadiren gerçekten, benim durumumda rebase için bir ihtiyaç vardır. - Yol Gıt çalıştığını ve neler yapabileceğini anlamanın bir durumda olduğunu düşünüyorum. Öyle bir süre ve çok iyi iletişim - ben sadece gerçekten başladı anlamak ne zaman başladım git kullanmak ile diğer geliştiriciler ve şimdi bile, bazı şeylerden emin değilim.
- Birleştirme çakışmaları yararlıdır. Biliyorum, biliyorum, o iş istiyor, ama gerçek şu ki kod değişiklikleri ve işe yarayan bir şey haline sonuçlarını birleştirmek gerekir. Birleştirme çakışmaları aslında sadece daha fazla programlama. Ben daha önce bulduğum basit bir açıklaması için ne yapmam onlara, öyle işte: not: dosyaları birleştirme çatışmalar, git ve onları değiştirmek için ne olmalı,
git add .
git commit
. - Yakışır ancak. Dediğim gibi, her kullanıcı bir depo kendi ile oynamak ve isimleri şubeye gitaynı olması gerekmez. Basamak bir depo varsa, örneğin, bir dosya adlandırma şeması zorlamak olabilir, ama sadece serbest repo her geliştirici için ihtiyacın yok.
- Bu aşamada birleştirme. Sadece kod kalite testi geçer/gözden geçirilmesi dikkate alındığında açıklaması dalları vb birleştirme.
Umarım yardımcı olmuştur. Farkındayım VonC olarak çok benzer bir açıklama gönderildi... yeterince hızlı yazamıyorum!
Editbu yorum OP alakalı olarak ticari bir ortamda gıt kullanmak için bazı ek düşünceler:
- Serbest depo,
product.git
, ararız kıdemli programcı / teknik insanların sayısı aslında ürünün kendisi bakmak için sorumlu tarafından erişilebilir. Oss'da tutucu role benzer. - Bu programcılar muhtemelen de kısmen de kendilerini Kodu ve çeşitli depolarda muhafaza edebilirler bu yüzden yeni sürümleri geliştirme kurşun,. Gerçekten yeni özellikler için hazırlama depoları yönetmek olabilir ve aynı zamanda kendi depoları olabilir.
- Onları aşağıda programcılar bireysel bit geliştirmek için sorumlu. Örneğin, birisi UI iş için sorumlu olabilir. Bu nedenle UI yönetmek.git deposu.
- Aşağıda gün iş için tam gün gibi özellikleri geliştiren gerçek programcılar onları.
Ne olacak? Herkes her gün başlangıcında çeker "Yukarı" kaynak kodlarını depoyu da muhtemelen bir önceki günden geliştirme yeni malzeme içeren () yani. Herkes bu, doğrudan yapar. Bu bir havuz, büyük olasılıkla adında bir şube devam edecek "eğer beni aramış olsaydın sen" veya belki de "son". usta Programcı sonra bazı çalışmalar yapacağız. Bu iş, bir şube yapıyorlar yani, bu işi yapmak konusunda emin değiller bir şey olabilir. Eğer işe yaramaz ise, şube silebilir ve geri gidebilirsiniz. Eğer bunu yaparsa, şu anda üzerinde çalıştıkları ana dal birleştirmek zorunda kalacaklar. Bu UI bir programcı git checkout latest-ui
o kadar latest-ui
çalışan git merge abc-ui-mywhizzynewfeature
takip ediyor deriz. O da onun teknik kurşun (UI kurşun) selam söyler, böyle bir görevi tamamladım, benden çekin. UI neden öyle git pull user-repo lastest-ui:lastest-ui-suchafeature-abc
. UI kurşun daha sonra bu dal üzerine baktı ve çok güzel, birleştirme ederim ui-latest
içine, aslında, diyor. Sonra herkes ona ui-latest
kendi dallarında ondan çekmeye aşağıda ya da onlara verdiler ne söyleyebilir, ve özelliği geliştiriciler tarafından keşfedilmeyi alır. Eğer takım mutlu ise, UI test kurşun kurşun ondan çekin ve değişiklikleri birleştirmek isteyebilir. Bu ve hata raporları gönderir vb testleri herkes () değiştirmek için aşağı yayar. Eğer özelliği varsa vb testi geçerse son olarak, üst düzey teknik müşteri adayları bu noktada tüm değişiklikleri daha sonra geri aşağı yayılır programın geçerli çalışma kopyası, içine birleştirme olabilir. Ve benzeri.
"" Yol ve "tahrik "" gibi/CVS SVN. hiyerarşik bir daha" yerine eş olacak şekilde tasarlanmıştır çalışan geleneksel değil Özünde, herkesin erişim işlemek, ama sadece yerel olarak vardır. Seni hiyerarşi kullanmak için izin veren serbest bırakma repo adayı olarak hangi depo için erişim ve.
Nasıl benim kod tanı sözdizimi yapmak ...
Nasıl değişmez bir " baskı miyim;{}&qu...
Nasıl bir farklı işlemeye git bir şube...
Nasıl bir tuval öğesi üzerinde fare bi...
Nasıl Android üzerinde javascript hata...