2010-08-25 12 views
8

Estoy buscando configurar emacs para que pueda usar forzosamente sin tener que usar p4v.Perforce y Emacs

He echado un vistazo al emacs wiki y una búsqueda en el site pero parece que solo hay dos opciones, ambas son bastante antiguas. La primera opción es p4.el, que fue actualizado por última vez en 2004. La segunda opción es the integration con el componente emacs VC, última actualización en agosto de 2007.

El segundo foro de SO parece sugerir el uso de p4.el. ¿Sigue siendo ese el consejo recomendado? ¿Alguien tiene consejos o trucos que puedan compartir?

Cualquier ayuda \ consejo muy apreciado.

Chris

+0

Use vim y git;) –

+0

Es curioso que lo mencione, otro problema que tengo en este momento es que parece que no puedo hacer que git-p4 funcione. Es realmente molesto, ya que probablemente omitiría la interacción más forzosa si lo pusiera en funcionamiento. – cristobalito

Respuesta

4

Sí, p4.el sigue siendo un método recomendado para integrar forzosamente en emacs. Fue bien implementado lo que explica por qué no se ha actualizado desde 2004.

Personalicé un par de cosas, principalmente para agregar y deshabilitar algunos accesos directos.

que añade la posibilidad de llamar a algunos comandos P4V de emacs, así

(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

Gracias por la respuesta. Solo por interés, supongo que no hay soporte para esconderse en el p4.el (los escondites vinieron después). – cristobalito

+0

Todavía soy nuevo en Perforce, pero parece que p4 shelve es similar a git stash. Puede implementar fácilmente una función emacs p4-shelve basada en p4.el –

+0

Ha habido algo de trabajo en CVS desde la versión 10.6; ver para una versión inédita 10.7 (aunque no tengo idea de qué tan estable es). –

3

He empezado un nuevo tenedor de p4.el en https://github.com/gareth-rees/p4.el, y si usted es un usuario de Emacs valiente que no le importa el error ocasional, es posible que desee probarlo. (Envíeme solicitudes de extracción con las correcciones de errores). He estado trabajando en la capacidad de respuesta en situaciones en las que el servidor Perforce podría estar disponible intermitentemente, como cuando se trabaja a través de una conexión de datos móviles. En particular, he hecho que la mayoría de las operaciones de usuario sean asíncronas, por lo que rara vez se bloquea el trabajo a la espera de que el servidor de Perforce responda.

También estoy agregando soporte para nuevas características Perforce como p4 status y p4 annotate, solucionando errores y modernizando el código. Here's a blog about what I've achieved so far.

+0

Estoy feliz de ver el soporte de 'cygwin' :) –

+0

@MiserableVariable: No uso Cygwin Perforce, por lo que podría romperse fácilmente (o podría haberlo roto). ¡Se agradecerán los informes y parches de errores! –

+0

+1 gracias un montón el viejo p4.el en sourceforge no funciona con emacs-24 (se bloquea al cargar), el tuyo parece funcionar bien hasta ahora! – Bogatyr