SORU
11 Mart 2013, PAZARTESİ


Nasıl nrepl-ritz-jack-in yapmak işe uzaktan üzerinde / Emacs SERSERİ miyim

Ben ne istiyorum:

Uzak bir sitede clojure bir program, hadi mccarthyarı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
12 NİSAN 2010, PAZARTESİ


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:

  1. 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.
  2. 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 son master 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • ImBluecams

    ImBluecams

    25 Kasım 2012
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007