FileManager Helper

Welcome to FileManager


FileManager是一款轻量的文件管理器。

为什么要用FileManager?

“想要做一款小巧灵活、能够方便快速地管理大量大文件的仓库的软件。”这是我们的初衷。

事实上,在开发前,我们也考虑了这个问题,即“已经有了Git这样的版本管理软件,为什么还要再写一个?”

但实际上,Git虽然好用,但是其有一个巨大的缺陷,Git对于大文件,特别是大的二进制文件不太友好。当在 Git 仓库中存储大的二进制文件时(>50MB),比如 R 里面的 RData 或 RDS 文件,默认的 git 提交方式无法获取二进制文件的修改,会让仓库越来越大。在这种情况下,将仓库 push 到远程会出现警告;而一些托管服务的提供者,比如GitHub,则禁止push超过100MB的文件。此外,Git的版本管理主要针对的是文本文件,但很显然,我们日常生活中常用的Word、PPT、PDF等文件都是二进制文件。

由此,我们开发了FileManager。与Git不同,它在管理大量二进制文件的时候足够灵活,配合上monitor后可以在近乎一瞬间察觉到整个仓库的里的细微变化。最重要的是,它足够方便,即使是没有安装FileManager的计算机也可以手工进行检出,查看历史文件。

--YubaC

安装 FileManger

双击install.bat以执行安装。

访问https://github.com/YubaC/filemanager/releases以获取最新版,或下载最新版

升级 FileManager

FileManager 每次启动时都会启动一个 update checker。

请注意!更新有可能失败。当 updater 的下载进度条长时间不变化时,请尝试关闭 updater 并重新进行更新。

Quick Start

使用help命令以获取帮助,使用'help -?'命令以打开此文档。

启动 FileManager

在正确安装 FileManager 后,当在文件夹下右键时,弹出的右键菜单应会包含“在这里打开 FileManager”的选项。

在这里打开FileManager.png

认识 FileManager 界面

fm_window.png

①:当前版本

②:工作路径

③:命令输入

除去在$处单击鼠标外,双击窗口或按 tab 键以快速聚焦。

在输入时使用键盘的 ↑↓ 键以快速调出历史命令,按 F7 以打开历史命令记录。在历史命令记录里选中的命令可以使用回车快速输入。

新建仓库

使用cd以更改工作目录。

除了使用相对路径外,cd命令同样也支持绝对路径。列如:

目标路径存在空格时,请使用cd,路径的方式更改工作目录。
列如:

请注意!所用逗号必须为半角符号(英文符号)。

在命令行输入init newrepo以在工作路径处新建一个仓库。

这是新建仓库前的 FMTest 文件夹:

可以看到,新建仓库后,仓库所在文件夹下多出了一个隐藏的.filemanager 文件夹。

加载仓库

使用init以加载工作路径下的仓库。

当出现这样的提示时,使用init -update以将仓库提升至当前版本:

加载成功后如下:

可以看到,在工作路径下多出了一个括号和六位数字/字母。这是该仓库的 id。
这是加载成功的标志。

红框内是该仓库的分支图。详情请参阅分支

检测仓库内文件的更新

refreash

refreash命令可以刷新整个仓库,检测所有更改,但耗时较长。

reload

reload命令可以刷新整个仓库,检测所有更改,耗时较短,但需要 monitor 的支持。
关于开启/关闭 monitor 的监控,详情请参阅仓库设置

更改/删除/新建的文件

加载后,如果没有更改,将会提示“没有最近更改的文件”:

否则将会弹窗提示更改的文件。这里我们新建一个 4.txt:

可以看到,弹出了一个名为“ChangesList”的弹窗。

“ChangesList”弹窗分上下两个 ListBox。上部是所有更改/删除/新建的文件列表,下部是暂存的文件列表。

在下部选中的文件可以通过“删除”按钮移除。在上部选中的文件可以通过“添加”按钮暂存。

除此之外,还可以使用add命令进行暂存操作。详情请参阅添加/移除暂存的文件

请注意!所有的空文件夹都不会被算在内。

添加/移除暂存的文件

在刷新仓库并确认有更改/删除/新建的文件后,可以使用add命令以添加/移除暂存的文件。

请注意!以上两个命令将会弹出如下图所示的一个文件选择框。

add 后的附加参数(-f/-d/+/-)排序不分先后。因此,命令add -f/-d +/-add +/- -f/-d是完全等效的。

提交暂存的文件

commit命令可以提交暂存的文件。方法是:commit '提交注释'commit "提交注释"。两种方法完全等效。

请注意!所用引号必须为半角符号(英文符号)。

例:提交注释为“My first commit”:

如果所在的提交不是当前分支的最后一个提交的话,会新建一个分支。

例如:

表示在 id=0 的提交处又进行了一次提交。

关于分支,请参阅分支

检出文件

checkout命令可以检出选中的提交,即将仓库恢复至所选中的提交提交时的状态。

方法是:checkout 提交id,列如:

上图表示将仓库恢复至 id=0 的提交(新建仓库)时。

分支

branch命令可以显示当前仓库的分支图。例如:

又或者:

分支图上的每一个星号(*)表示一次提交。竖线表示分支。

对应星号右侧是该次提交的提交说明。括号内的 id(id=x)为该次提交的编号。

星号右下侧的加号和横线/反斜杠(\)表示从该提交延伸出的子分支。列如,上图中的 id=8~10 的提交表示在 id=1 的提交处又进行了一次提交(id=8),并且在这个提交(id=8)的基础上又提交了 id=9 和 id=10 的提交。

又如:

其含义为:在 id=0 的提交(新建仓库)出,引出一个子分支(id=2)。

比较文件的不同

diff命令可以比较文件的不同。

如果想保存比较所生成的对比文件(一个 html 网页),请使用diff -s

无论是否选择保存,diff 都将会在比较完成后用浏览器打开对比文件。

请注意!diff命令只能比较文本文件,形如.word,.ppt,.xls,.psd 等二进制文件均不在可比较的范围内。

仓库设置

monitor

什么时候适合启用 monitor?

当一个仓库内文件特别多的时候,refreash 会花费很长时间,这时适合启用 monitor,可以大量节省 refreash 的时间。如果 refreash 耗时很短,则不建议启用 monitor。

更改以前的提交

recommit命令可以更改过去的提交。方法是:

  1. 使用checkout命令(详见检出文件)检出需要更改的提交;
  2. 对仓库进行更改;
  3. 使用refreashreload命令(详见检测仓库内文件的更新)刷新仓库;
  4. 使用recommit命令重新进行提交。

请三思而后行!这将不可逆的更改仓库的提交历史。若非确认选中的提交不得不进行更改请不要使用。

忽略文件/文件夹

FileManager会忽略记录在.ignore文件里的文件所发生的变更。

创建.ignore文件

使用set .ignore命令以快速在当前仓库下创建.ignore文件,或:

  1. 在仓库根目录下新建一个文本文档,如下图:
  1. 打开这个文本文档,选择另存为,输入文件名.ignore,类型选择为所有文件(*.*),编码选择UTF-8
  1. 删除新建的文本文档。

修改.ignore文件

使用记事本或其它文本文件编辑器打开及编辑.ignore文件。

忽略文件

忽略文件夹(目录)

请注意!使用目录名\的方式忽略文件时,该目录必须位于仓库的根目录下。

例如:

根目录
├─01
│  └─test
│          test2.txt
│          
└─test
        test.txt

可以看出,根目录内有两个文件夹:test和01。其中test文件夹内有一个test.txt,而01文件夹内有一个子文件夹:test2,而test文件夹内又有一个test2.txt。

通配符

*可以作为通配符使用,代替一个或多个字符。

例如:

取消忽略

在需要取消忽略的路径前写入#以禁用忽略该路径,或直接将该路径删除。