zhllxt / asio2

Header only c++ network library, based on asio,support tcp,udp,http,websocket,rpc,ssl,icmp,serial_port,socks5.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

3rd目录建议手动git引入

obqrn opened this issue · comments

commented

3rd这个目录能弄成手动git引入不,这样我们工程自动clone以后就不会下载那么多用不到的东西了

commented

这个建议我尝试之后,发现有如下问题无法解决:

  1. git的submodule目前无法指定tag,当我release了一个新版本之后,我想给submodule也指定相应的tag让他们严格匹配起来,但是目前git不支持。
  2. 当用户点击下载zip压缩时,submodule的内容并没有下载,是空的。

所以我决定暂时放弃这个做法。

既然你想用submodule,那说明你肯定用的是git命令,此时你应该无外乎两种操作方式,一是手工输入命令,二是在脚本中写好了命令直接执行脚本。
因此我觉得你可以这样:
如果是手工输入命令,那你更新的频率应该不高,如果你想保持项目干净,那你手工更新完之后,再手工删不需要的目录即可。
如果是脚本执行命令,那就更好办了,你把要删除的目录项一起写在脚本中即可,此时你还可以删除项目中的example和test这些不需要的目录。

commented

Git 的子模块(submodule)目前默认不会跟随主项目的标签(tag)更新,这可能会导致子模块与主项目之间存在版本差异。但是你可以通过以下步骤手动给子模块指定标签。

进入子模块目录:cd my-submodule
切换到需要指定标签的提交:git checkout
为该提交打上标签:git tag
推送标签到远程仓库:git push --tags
此时,子模块就成功地指定了一个标签,可以与主项目的标签匹配。要注意的是,为每个子模块都重复执行以上步骤会很繁琐,因此建议将以上步骤放入脚本中自动化执行,以提高效率。

不知道这个有没有帮助。
个人觉得减少第三方库引入项目源代码(洁癖)有助于推广哈,许多开源项目都采用这种方式,当然这只是建议。