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での無料画像ホスティング

Source: https://habr.com/ru/post/J86756/


All Articles