Hvad er den bedste måde at bruge 'git add -p' i emacs på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Problem:



  1. git add -p virker ubrugelig i enten emacs shell eller eshell

  2. magit (et ofte foreslået alternativ til at bruge git fra skallen i emacs) suger bolde på Windows (det er forfærdeligt langsomt.)

  3. At holde et cygwin vindue åbent og bruge det til git add -p og derefter gå frem og tilbage imellem det og emacs er muligt, men mere end lidt irriterende.



Er der nogen måde, at under Microsoft Windows kan jeg få enten git add -p til at fungere godt i shell eller eshell eller alternativt få magit at være noget brugbar?

Bedste reference


Hvis magit er langsom, angiver det sandsynligvis problemer med din Windows Git-klient?


Jeg ville undersøge det først og fremmest (fordi git add -p virkelig ikke har et lys til magit s interface, IMO).


Hvad er de nøjagtige værktøjer (og versioner heraf), som du bruger?


Du bør helt sikkert tjekke magitproblemet tracker for at se, om der er kendte grunde til, at magit kan være langsom.

Andre referencer 1


Har du forsøgt:


\% EDITOR=emacsclient git add -e <files>


og derefter bruge diff-mode kommandoer i dine løbende emacs for interaktivt at redigere plasterets hunks?


Derefter vil du være i stand til at opdele hunks i patchen på en bestemt linje med diff-split-hunk og fjerne hunks helt med diff-hunk-kill (og selvfølgelig er disse kommandoer bundet til kortere nøglesekvenser til hurtig interaktiv brug). Når du er færdig med at redigere patchen, skal du bruge C-x # for at gemme den og afslutte emacsclient sessionen (så du kan gå tilbage til din shell).


(emacsclient, hvis du ikke er bekendt med det, er et program, der lader dig åbne filer i en allerede kørende emacs, så længe sidstnævnte har startet en server til emacsclient at oprette forbindelse til; se M-x describe-function server-start )


Bemærk, at du sandsynligvis vil tilpasse, hvordan emacsclient interagerer med git en lille smule; Se f.eks. disse svar: Brug ediff som git mergetool og Sådan indstilles exitstatus for emacsclient. [15]