2010-07-22 16 views
6

Sto configurando un progetto che verrà condiviso tra diversi programmatori della mia organizzazione. Stiamo usando git - a cui sono un nuovo arrivato. La directory del progetto include collegamenti simbolici a directory di documentazione che non dovrebbero essere sotto controllo di versione. Voglio mantenere i collegamenti simbolici sotto controllo di versione come collegamenti simbolici, piuttosto che averli dereferenziati e tutto il contenuto della directory con collegamenti simbolici posto sotto controllo di versione.Controllo del trattamento eGit dei collegamenti simbolici

Trovo che lo strumento da riga di comando git si comporti nel modo desiderato: git add -A. Tuttavia, se provo a usare la versione Eclipse di git, eGit, per aggiungere tutti i file attualmente non indirizzati, usando Team->Track nel menu di scelta rapida del progetto, eGit vuole aggiungere ogni file nelle directory collegate. C'è un modo per dire a eGit che, no, questi sono davvero collegamenti simbolici e non dovrebbero essere dereferenziati?

+0

Non è una risposta alla tua domanda, ma se sei nuovo a git, consiglio vivamente di leggere questo: http://progit.org/book/ Ho provato alcuni DVCS, e armeggiavo con solo facendo si impegna con git, ma una volta che l'ho fatto a/attraverso il capitolo 3 mi sono sentito come se potessi davvero essere abbastanza potente. Dovresti leggerlo (e qualcuno della tua squadra che non lo ha fatto!) –

+5

I miei due centesimi: ho appena dato un'occhiata a EGit, e parlando come qualcuno che conosce abbastanza bene, direi che stai girando te stesso nel piede usandolo. Un sacco di funzionalità git comunemente usate non sono ancora implementate, in particolare * unione * (tranne l'avanzamento rapido). Devi usare 'git pull' dall'esterno di eclissi. Sì, puoi ancora usare EGit per alcune cose, ma perché usare un plugin imbarazzante che ti costringe a passare attraverso molti menu di scelta rapida, quando puoi semplicemente usare git/msysgit? C'è sempre git-gui e gitk, se insisti su una GUI - e sono più puliti dell'interfaccia di EGit. – Cascabel

+0

@Jefromi: Sto iniziando a raggiungere la stessa conclusione. –

risposta

3

Il nostro problema è stato discusso in questo: Eclipse Community Forums Thread

Sembra che attualmente il nativo lstat supporto Linux non è troppo facile fare portatile. Il paradigma Leain Common Denominator che hanno per la programmazione di Eclipse in Java rende più difficile fare roba nativa su Linux o Mac. (leggi: * cough * Windows non supporta i collegamenti simbolici * cough *).

La buona notizia è:

Sembra possibile, ma avevano bisogno di codificare in modo conforme alla loro 'Write Once prova Ovunque' standard di programmazione. Ritengo che sia importante avere un supporto nativo stat e lstat su Linux quando si utilizza EGit a causa di questo problema, nonché Eclipse bug #346079.

Basta avere installato EGit cause rallentamenti & blocca IDE quando si fa un Git Refresh :-(

La cattiva notizia è:

Questi due mi bug si fermano di usare EGit per la maggior parte del mio i comandi git.L'esperienza utente rende EGit inutilizzabile per me. Sarebbe davvero bello essere in grado di utilizzare EGit all'interno di Eclipse in modo che Mylyn User Stories & Attività potrebbe essere legato automaticamente alle diramazioni delle funzionalità. anche essere grandi per avere le caratteristiche del modello di messaggio di commit automatico. Ciò renderebbe un gioco da ragazzi lo stato attuale del compito & nel messaggio di commit.

Questo mi è bugging quasi basta che io sono pronto a vedere se è possibile fare alcuni script per interrogare Eclipse/Mylyn per la corrente di commettere messaggio di output del modello, e fare il git commit dalla linea di comando usando questo. Non sono sicuro di come funzionerebbe la creazione automatica del ramo della caratteristica per story utente.

Fino a quando questi problemi vengono risolti, sono sicuro che un sacco di utenti EGit non sarà felice :-(

+2

Windows supporta i collegamenti simbolici. Mklink – Jherico

+0

Sì, è vero che le versioni più recenti di Windows (Win Server 2008, Vista, Win7 e successivi). Probabilmente è possibile che le persone di Eclipse possano utilizzare questa funzionalità, ma non sono sicuro di quanto siano compatibili con le versioni precedenti di Windows. – TrinitronX

+0

L'altro problema era che Java non supportava i symlink prima di 1.7 – user1902135

3

Abbiamo sofferto di questo problema ingombrano lo schermo commettere mai fine, e causando di tanto in tanto qualcuno a dimenticare di includere un file che avevano creato.

La soluzione che abbiamo trovato era quella di modificare manualmente il file.file gitignore per includere i percorsi in cui i file collegati sarebbero visualizzati quando i link simbolici sono stati dereferenziati:

/ProjectHomeFolder/.gitignore

Dal momento che stavamo lavorando nel quadro gioco abbiamo anche curato i seguenti: ignora /ProjectHomeFolder/conf/.gitignore
/ProjectHomeFolder/public/.gitignore

Abbiamo semplicemente aggiunto /ModuleName per ciascuno dei moduli che sono stati un link simbolico e ora egit li ignora correttamente, per completezza qui è l'intero contenuto della mia radice. gitignore file, che si ts nella directory principale del progetto:

/.project
/.classpath
/.gitignore
/Eclipse
/tmp
/CRUD
/.git
/.settings
/moduli
/conf
/betterlogs-1.0
/crono stamp-0,1
/logisimayml-1.5
/betterlogs-1.0
/sass-1.1
/deadbolt-1.4.2
/jquery-1.0
/log4play-0.5
/messages-1.1.1
/navigation-0.1
/jqueryui-1.0
/scaffold-0.1
/table-1.2
/tabularasa-0.2

Problemi correlati