2010-08-25 12 views
8

Sto cercando di configurare emacs per consentirmi di utilizzare perforce senza dover utilizzare p4v.Perforce ed Emacs

Ho dato un'occhiata allo emacs wiki e una ricerca su site ma sembra che ci siano solo due opzioni là fuori - entrambe sono piuttosto vecchie. Prima opzione è p4.el che è stata aggiornata nel 2004. La seconda opzione è the integration con il componente Emacs VC, ultimo aggiornamento nel mese di agosto 2007.

Il secondo link qui sopra da SO sembra suggerire utilizzando p4.el. È ancora il consiglio raccomandato? Qualcuno ha qualche consiglio o consiglio che può condividere?

Qualsiasi aiuto \ consiglio molto apprezzato.

Chris

+0

Usa vim e git;) –

+0

Divertente dovresti dirlo - un altro problema che ho al momento è che non riesco a far funzionare Git-p4! È davvero fastidioso, dato che probabilmente ignorerei la maggior parte delle interazioni di forza, se mi fossi messo in moto. – cristobalito

risposta

4

Sì, p4.el è ancora un metodo consigliato per integrare per forza in emacs. È stato ben implementato e questo spiega perché non è stato aggiornato dal 2004.

Ho personalizzato un paio di cose, principalmente per aggiungere e disabilitare alcune scorciatoie.

ho aggiunto la possibilità di chiamare alcuni comandi P4V da emacs così

(defun invoke-p4v-cmd (cmd) 
    (let ((file (if (equal major-mode 'dired-mode) 
        (dired-get-file-for-visit) 
       (buffer-file-name)))) 
    (when file 
     (shell-command (concat "\"c:/Program Files/Perforce/p4v.exe\" -cmd \"" cmd " " file "\" &"))))) 

(defun op:p4v-timelapse() 
    "show revision tree" 
    (interactive) 
    (invoke-p4v-cmd "annotate")) 

(define-key p4-prefix-map "T" 'op:p4v-timelapse) 


(defun op:p4v-tree() 
    "show revision tree" 
    (interactive) 
    (invoke-p4v-cmd "tree")) 

(define-key p4-prefix-map "g" 'op:p4v-tree) 

(defun op:p4v-history() 
    "Show history" 
    (interactive) 
    (invoke-p4v-cmd "history")) 

(define-key p4-prefix-map "x" 'op:p4v-history) 
+0

Grazie per la risposta. Solo per interesse, suppongo che non ci sia supporto per la memorizzazione in p4.el (la memorizzazione è venuta dopo)? – cristobalito

+0

Sono ancora nuovo in Perforce, ma sembra che p4 shelve sia simile a git stash. È possibile implementare facilmente una funzione emacs p4-shelve basata su p4.el –

+0

C'è stato un po 'di lavoro in CVS dalla versione 10.6; vedi per una versione 10.7 inedita (anche se non ho idea di quanto sia stabile). –

3

ho iniziato una nuova forcella di p4.el a https://github.com/gareth-rees/p4.el, e se sei un utente coraggioso Emacs che non mente l'errore occasionale, si potrebbe desiderare di provarlo. (Inviami richieste pull con le tue correzioni di bug!) Ho lavorato sulla reattività in situazioni in cui il server Perforce potrebbe essere disponibile in modo intermittente, come quando si lavora su una connessione dati mobile. In particolare, ho reso la maggior parte delle operazioni utente asincrone, in modo che il lavoro venga raramente bloccato in attesa che il server Perforce risponda.

Aggiungo anche il supporto per le nuove funzionalità Perforce come p4 status e p4 annotate, correggere i bug e modernizzare il codice. Here's a blog about what I've achieved so far.

+0

Sono in, felice di vedere il supporto 'cygwin' :) –

+0

@MiserableVariable: Io non uso Cygwin Perforce da solo, quindi potrebbe essere facilmente infranto (o avrei potuto romperlo). Segnalazioni di bug e patch sarebbero apprezzate! –

+0

+1 grazie a bunch il vecchio p4.el su sourceforge non funziona con emacs-24 (si blocca durante il caricamento), il tuo sembra funzionare fino ad ora! – Bogatyr

Problemi correlati