Giter VIP home page Giter VIP logo

xl-git's Introduction

xl-git

A front end for git in xyzzy.

Install

  1. 解凍して xyzzy のインストールディレクトリにコピーします

  2. .xyzzy または siteinit.l に以下のコードを追加します

    (require "xl-git")
  3. 環境変数 GITDIR を設定していない場合は以下も追加します

    ; 自分の環境での msysgit のインストールディレクトリに変更して下さい
    (setf *msysgit-directory* "C:/msysgit")
  4. (必要ならば) バイトコンパイルします

  5. 上記の設定を反映させる為に再起動をします siteinit.l に設定した場合は再ダンプも行います

Usage

  • M-x git-init
  • M-x git-add
  • M-x git-commit
  • M-x git-push
  • etc...

*Git* バッファ

  • モードラインに :Run (プロセス実行中)の場合は C-c C-g で終了
  • モードラインに :Exit (プロセス終了)の場合は C-c C-g もしくは q で終了

COMMIT_EDITMSGTAG_EDITMSG バッファ等

  • C-c C-c もしくは C-x C-s で実行
  • C-c C-g でキャンセル

Setting

git-flow のコマンドを追加したい

(require "xl-git-flow")

msysgit ではなく cygwin を使用したい

(setf *msysgit-directory* nil)

環境変数にPATH等を設定していない場合は以下を参考に設定して下さい

; 自分の環境での cygwin のインストールディレクトリに変更して下さい
(push `(("PATH" . ,(concat "C:/cygwin/usr/local/bin;C:/cygwin/bin;" (si:getenv "PATH")))
        ("CYGWIN" . "ntsec"))
      *git-environ*)

cygwin を導入済みだが msysgit を使用したい

(push '("CYGWIN" . "") *git-environ*)

引数の入力時に補完入力を使用する (実験機能)

(setf *git-completing-prompt* t)

Issue

下記のどちらかにご連絡下さい

Author

DeaR ([email protected])

@nayuri_aohime

License

Copyright (c) 2012 DeaR <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

xl-git's People

Contributors

dear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

xl-git's Issues

常時プロンプトを使うべきか?

現状では mercurial.l のように C-u ならプロンプトを出すようにしているが
常に出した方が git-tag 等の引数の有無で動作が全く違う物が使い易くなるのではなかろうか

だが read-string なので completing-read にしてbranchを候補に登録したりは出来なくなる
今でもしてないけど

read-stringの履歴引数

*minibuffer-default-history* ではなく別の履歴引数を使う

ni用に load-before-uninstallunregister-history-variable もしないといけない

キーマップに割り当て

現状ではすべて M-x から操作するようになっているが、
mercurial.l のようにリポジトリであればマイナーモードとして
幾つかのコマンドを割り当てる

git-issue 対応

git-issue に対応する
大体は define-git-command でいける
git issue commitgit commit 同様こちらで再現する必要がありそうなのが大変

取り敢えず使ってみないと何とも…

git-editmsg-mode に diff の着色は要らない?

git commit --verbose の為にdiffの着色も行っているが邪魔かも?

  • コミットメッセージにmarkdown記法を使っている場合、
    行頭の +- が色が付いてしまう
  • また、同じく行頭に diff とかも色が付いてしまう

git-commit の define-git-command 化

現状、git commit を再現する形で最終的にcommit -Fするという方法を取っているが
非常に際限が難しく、また git rebasegit tag -a 等の事を考えると
GIT_EDITORを必ず設定しているのだから普通にそのまま git-make-process して
*auto-mode-alist* でもってメッセージ用のモードに切り替える方法に変更する

install 方法

git-intall

の引数に

  • :msysgit MSYSGIT_DIR
  • MSYSGIT_DIR --- msysgit のインストールディレクトリを設定
  • :cygwin CYGWIN_DIR [CYGWIN_ENV]
  • CYGWIN_DIR --- cygwin のインストールディレクトリを設定
  • CYGWIN_ENV -- 環境変数CYGWINの設定値(省略時 "ntsec")

の様な感じで追加してインストール作業を簡単に

git-output-modeをマイナーモード化

  • git-output-mode -- major -> minor
  • git-diff-mode -- minor -> major
  • git-log-mode -- minor -> major
  • git-commit-message-mode -- major

にした方が regexp-keyword-list の取り扱いがメジャーモードのみとなり、
また、別のモードを利用するという発展も可能なのではなかろうか

define-git-command の引数は defapackage に似せた方が良い?

現状

(git::define-git-command ("clone")
  ; :symbol #:git-clone
  :document "Clone a repository into a new directory."
  :prompt t
  :dir-prompt t
  ; :file-arg nil
  ; :minor-mode nil
  :no-std-handles t)

変更案

(git::define-git-command ("clone")
  ; (:name "git-clone")
  (:documentation "Clone a repository into a new directory.")
  (:prompt t)
  (:dir-prompt t)
  ; (:file-arg nil)
  ; (:minor-mode nil)
  (:no-std-handles t))
  • :symbol -> :name
  • :document -> :documentation
  • それぞれの引数は括弧で囲んで

regexp-keyword-list が上書きされる

append 等で追加しないと他のモードとregexp-keyword-listでの着色を共存できない
しかし、modeが終了した際に消さなきゃいけないな…

git-log の着色ミス

  • 4~40桁7桁もしくは40桁の16進文字列をSHAとして認識している為、メッセージ等に数値文字列があると誤認識する
  • ブランチ・タグを括弧で認識している為、メッセージ等に括弧があると誤認識する
  • ブランチ・タグ等の間のカンマもボールドで彩色されている

正規表現での最大文字数も絡むので中々難しい…

git-commit 時に右に diff を表示する

現状コミットメッセージは *Git* で入力を行っているが
*GitMessage* 等の別バッファにして、右側に git diff --cached を表示させる

--amend の場合は git-diff --cached HEAD^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.