代码文件管理系统

客户端:

1、上传

使用git upload 进行上传

2、下载

使用git clone 进行下载
自动加载为未完成但已经保存的存档(?)

3、覆盖(?)

暂定

4、UI

Ftxui
需要tui
登陆界面——需要账密
一键按钮/键盘控制
列出帐号对应的仓库内的项目名 最新版本 上传时间
先选项目 再选版本 保留一版draft
使用者的用户名与密码hash保存,对照密码hash,若hash一致,则进一步登录

5、编写

Cmake
C++
json

6、启用条件

插入u盘
保持后台/当且只当终端访问

服务端

1、一键脚本部署git仓库

wget / 完整的安装包

2、配置

U盘 git仓库
服务器 git仓库

运行逻辑

客户端运行流程:

开机自启/手动启动

使用默认帐号密码加载服务端保存的用户帐号与密码的hash值
–尝试识别有哪些服务端
–默认帐号只能拉取保存了用户帐号与密码的hash值文件的仓库(?单独使用master分支,禁用main分支)

提供账户与密码登录窗口,输入账密

对照hash值,如果没有问题,则进一步将账密补充到git指令中,拉取仓库信息(?单独使用main分支,禁用master分支)
–仓库信息:名称 所属人 最新版本 最新修改时间
–最新版本可与本地仓库版本进行对比,提醒更新项目(?暂定)

选择仓库,显示所有版本

选择版本,进行操作
–操作:克隆、拉取、推送,全部依赖git原生操作
–克隆:在您的计算机上创建远程仓库的本地副本。
–推送:将您的本地提交上传到远程仓库。这里会有两个选项,一个是将打开终端的(若有.git文件夹)的文件夹,另一个是手动粘贴文件夹完整路径。这个操作需要附上日志
–拉取:从远程仓库获取更改并将其合并到您当前的分支中。

操作后返回仓库选择所有版本页面
所有页面可返回上级菜单

服务端运行流程:

返回值包含传递成功与否
磁盘剩余空间,完成操作时间点,完成操作用时
补充更新日志

服务端默认debian/ubuntu,一键环境部署脚本

设置最高管理者,进行仓库权限管理/编辑master分支文件(?)