Midnight CommanderをGIT用のコンソールブラウザーに変える

序文の代わりに...



長い間、meldでどのように行われたかについてのコードを見たいと思っていましたが、コンソールでのみでした。また、GITファイルバージョン管理システムに接続することも望んでいました。 一般に、mcを離れることなくすべてが1つのボタンで行われるようにします。



Ydiff


チャンネルに登場すると(またはトラックに乗っていたとしたら...)ある特定のダニエルボルカが現れ、騒ぎ、騒ぎ、逃げ出しました。真夜中の司令官。 それらの1つにはydiff。[Ch]およびzdiff。[Ch]が含まれていました...判明したように、私が取得したかったのは、昔のmc-mpの フォークru-forkの最新バージョンです。 2日間の「カット」の後、ファイル比較機能を最新バージョンのmcに接続しました...半分の戦いが行われました。 :)



GITリポジトリを表示


Gitfsパネルプラグイン


2番目の問題は、GITリポジトリのパッチを真夜中の司令官に直接、リポジトリディレクトリから表示することです。 そして、右側のパネルでリポジトリをナビゲートできるようにすることで、真夜中の司令官のためにVFSを書くことを考えました。 「ピッキング」の数分後、 gitfsの最初の生バージョンが誕生しました

現在完全に機能しているが最終バージョンではないものを以下に示します。

#!/ bin / sh



LANG = C

umask 077



gitfs_list

{

DATE = ` date + "%b%d%H:%M " `

GIT_DIR = "$ 2 / .git"

ユーザー = ` whoami`

git ls-files | fname 読み ながら

する

echo "-r-r-r-- 1 $ user 0 0 $ DATE` dirname $ fname` /(git) ` basename $ fname` "

やった

}



gitfs_copyout

{



echo -e "$ 2" > "$ 4"

echo "$ 3" | sed -e s / \ git \ \ // >> "$ 4"

}



ケース 「$ 1」

list gitfs_list "$ @" ;;

copyout gitfs_copyout "$ @" ;;

* exit 1 ;;

エサック

出口 0







Gitlogfsパネルプラグイン


リポジトリをナビゲートするだけでなく、あらゆるリビジョンのファイルを受信できるようにしたいと考えました。 このためにgitlogfsプラグインが作成されました

#!/ bin / sh



LANG = C



changesetfs_list

{

DATE = ` date + "%b%d%H:%M " `

GIT_DIR = ` head -n1 $ 2` " .git "

fname = ` tail -n1 $ 2`

USER = ` whoami`

git log --abbrev = 7 --pretty = "format:%at%h%an" " $ fname " | chset 読みながら

する

TIMESTAMP = ` echo $ chset | cut -f1 -d "" `

DATE = ` date -d @ " $ TIMESTAMP " + "%b%d%H:%M " `

NAME = ` echo $ chset | cut -f2 -d "" ` " " ` basename $ fname `

echo "-rw-rw-rw- 1 $ USER 0 0 $ DATE $ NAME "

やった



}



changesetfs_copyout

{

GIT_DIR = ` head -n1 $ 2` " .git "

fname = ` tail -n1 $ 2`

chset = ` echo " $ 3 " | cut -f 1 -d "" `

filecommit = ` git show --raw --pretty = tformat: h " $ chset " " $ fname " | grep ^: | grep ... | cut -f3 -d "" | cut -f1 -d "。" `

git show " $ filecommit " > "$ 4"

}



ケース 「$ 1」

list changesetfs_list "$ @" ; exit 0 ;;

copyout changesetfs_copyout "$ @" ; exit 0 ;;

エサック

1 番出口





真夜中の司令官へのgitfsおよびgitlogfsプラグインの接続


パネルプラグインをmcに接続するには、真夜中の司令官〜/ .mc / extfs.dのホームディレクトリに配置するだけです 。 プレフィックス(git)で始まるファイルをクリックしたときにgitlogfsプラグインが呼び出されるようにするには、このタイプのファイルの説明を〜/ .mc / bindingsファイルに追加する必要があります。

正規表現 / ^ \ git \

オープン = cd p #gitlogfs




アートワーク


gitfsの呼び出しは、GITリポジトリディレクトリのcd #gitfsコマンドによって行われます。

FunkyIMG.comでの無料画像ホスティング



リポジトリ内のナビゲーションは、他のファイルシステムと同様に行われます。

FunkyIMG.comでの無料画像ホスティング



gitlogfsへのログインは 、プレフィックス(git)が付いたプロジェクトファイルでEnterキーを押すことで実行されます。

FunkyIMG.comでの無料画像ホスティング



ファイルの2つの任意のリビジョンの比較は、ホットキーCtrl-x、Ctrl-yを使用して実行されます

FunkyIMG.comでの無料画像ホスティング



All Articles