【wing】一款轻量快捷的团队开发工具

导航

说明

wing是一个代码同步管理工具类似repo,具有以下特性:

  • 支持WinddowsLinuxMacOS
  • 支持代码同步和本地映射
  • 扩展了针对工作空间的git命令
  • 保留了原git命令
  • 增加了更多常用开发工具,覆盖开发环境、代码检查、模板创建、开发调试、应用发布

wing更多的是一个让开发团队保持一致开发环境的工具,从团队协作和工程开发的角度构建产品或项目,围绕设计,开发,测试,编译,发布等环节的开发活动,提升团队的开发效率。

开发计划

设计

开发空间(dev-space)

结构设计

范例

项目代码

以下为本项目的代码目录简要说明,工程比较简单便于大家快速上手。

使用规范

manifest配置

manifest是指定不同的开发人员获取不同的代码库,但整个代码结构保持一致。确保团队开发人员之间,服务端编译(如:jenkins)开发环境均一致。通过初始化命令来获取代码索引(如:wing init iofomo master xxx.xml

manifest中的project对应的是服务端库,其格式如下。

xml 复制代码
<!-- path:本地相对目录名称 -->
<!-- name:远程库相对地址 -->
<!-- revision:为指定的库分支或标签,未配置则使用默认 default 中的值,若已配置则在整体创建分支或标签时保持不变 -->
<project path="platform/doc" name="platform/doc.git" revision="master" >
    <!-- 将该库中src文件导出到本地目录下 -->
		<copyfile dest="build.py" src="build.py"/>
</project>

admin code group

通常admin.xml记录本项目或产品所有的库,不作为实际开发使用,项目或技术负责人使用此索引,可以看到整个团队开发每日详情,便于管理和代码审查。

xml 复制代码
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
    <remote name="origin" fetch=".."/>

    <!-- branch -->
    <default revision="master" remote="origin" sync-j="4"/>

    <!-- doc -->
    <project path="doc" name="project/iofomo/doc.git" />

    <!-- platform: always with master -->
    <project path="platform/doc" name="platform/doc.git" revision="master" />

    <!-- Application -->
    <project path="application/client" name="project/iofomo/client.git" />

    <!-- Component -->
    <project path="compt/common" name="platform/compt/common.git" />
    <project path="compt/comm" name="platform/compt/comm.git" />
    <project path="compt/uikit" name="platform/compt/uikit.git" />
    <project path="compt/framework" name="platform/compt/framework.git" />

    <!-- PC: always with master -->
    <project path="pc/wing" name="platform/wing.git" />
    <project path="pc/tinyui" name="platform/tinyui.git" />

    <!-- Template: always with master -->
    <project path="template/as" name="platform/template_as.git" revision="master" />
    <project path="template/as_mts" name="platform/template_as_jni.git" revision="master" />
    <project path="template/as_jar" name="platform/template_as_jar.git" revision="master" />
    <project path="template/py" name="platform/template_py.git" revision="master" />

    <!-- server -->
    <project path="server/fomosite" name="project/iofomo/fomosite.git" />
    <project path="server/web" name="project/iofomo/web.git" />
    <project path="server/vue" name="project/iofomo/vue.git" />

    <!-- Test -->
    <project path="test/tools" name="platform/tools.git" revision="master" />
    <project path="test/testBot" name="project/iofomo/testBot.git" />

    <!-- build -->
    <project path="build" name="project/iofomo/build">
        <!--<copyfile dest="build.py" src="build.py"/>-->
    </project>

</manifest>

pc code group

这是pc组代码索引配置,里面仅包含公共库和pc相关的代码库。

xml 复制代码
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
    <remote name="origin" fetch=".."/>

    <!-- branch -->
    <default revision="master" remote="origin" sync-j="4"/>

    <!-- doc -->
    <project path="doc" name="project/iofomo/doc.git" />

    <!-- platform: always with master -->
    <project path="platform/doc" name="platform/doc.git" revision="master" />

    <!-- PC: always with master -->
    <project path="pc/wing" name="platform/wing.git" />
    <project path="pc/tinyui" name="platform/tinyui.git" />

    <!-- Test -->
    <project path="test/tools" name="platform/tools.git" revision="master" />
    <project path="test/testBot" name="project/iofomo/testBot.git" />

    <!-- build -->
    <project path="build" name="project/iofomo/build">
        <!--<copyfile dest="build.py" src="build.py"/>-->
    </project>

</manifest>

test code group

这是自动化测试开发组代码索引配置,里面仅包含公共库和test相关的代码库。

xml 复制代码
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
    <remote name="origin" fetch=".."/>

    <!-- branch -->
    <default revision="master" remote="origin" sync-j="4"/>

    <!-- doc -->
    <project path="doc" name="project/iofomo/doc.git" />

    <!-- platform: always with master -->
    <project path="platform/doc" name="platform/doc.git" revision="master" />

    <!-- Test -->
    <project path="test/tools" name="platform/tools.git" revision="master" />
    <project path="test/testBot" name="project/iofomo/testBot.git" />

    <!-- build -->
    <project path="build" name="project/iofomo/build">
        <!--<copyfile dest="build.py" src="build.py"/>-->
    </project>

</manifest>

创建分支或标签

如通过命令wing -create b release_v1.0.0 master即基于master分支创建新的release_v1.0.0分支(标签命令同理)。则:

  • manifest所在的Git库会自动创建一个release_v1.0.0的分支。

  • manifest中所有的xml索引文件中default默认分支的值为release_v1.0.0

test.xml在新的分支内容变更如下,公共库(即指定revision分支)保持不变:

xml 复制代码
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
    <remote name="origin" fetch=".."/>

    <!-- branch -->
    <default revision="release_v1.0.0" remote="origin" sync-j="4"/>

    <!-- doc -->
    <project path="doc" name="project/iofomo/doc.git" />

    <!-- platform: always with master -->
    <project path="platform/doc" name="platform/doc.git" revision="master" />

    <!-- Test -->
    <project path="test/tools" name="platform/tools.git" revision="master" />
    <project path="test/testBot" name="project/iofomo/testBot.git" />

    <!-- build -->
    <project path="build" name="project/iofomo/build">
        <!--<copyfile dest="build.py" src="build.py"/>-->
    </project>
</manifest>

快速开始

新手操作看 这里

安装

shell 复制代码
$ python setup.py install

配置环境变量

Windows:

C:\Users\${user name}\bin添加至系统环境变量。

Linux/MacOS:

~/bin配置为可执行全局目录。

创建工作空间

添加工作空间对应的代码git库服务地址,如:

shell 复制代码
# 本地索引模式
# wing -space add {space name} {git host} [manifest]
# such as:
$ wing -space add test git@github.com/iofomo

获取代码

shell 复制代码
$ mkdir test
$ cd test

# wing init {space name} {branch/tag} {manifest file}
# such as:
$ wing init test master admin.xml

在当前目录下自动创建一个空的模板索引文件(.wing/manifests/admin.xml),需要添加要同步的代码库映射关系。

许可协议

本项目基于MIT许可协议,详情查看 许可协议 文档。

本项目和所有的工具都是MIT许可证下的开源工具,这意味着你可以完全访问源代码,并可以根据自己的需求进行修改。

相关推荐
SQDN18 小时前
Codex CLI 报 wire_api=“chat“ 不再支持?改为 Responses 并验证 /v1/responses
openai·开发工具·codex·responses api·config.toml
Kevinten101 天前
OpenOctopus:领域原生 AI 家庭助手系统,Summon 功能将实体转化为智能 Agent
人工智能·ai·开源·开发工具·智能体
VIP_CQCRE5 天前
最近发现一个小工具:把 Ace Data Cloud 接入 AI 助手
ai·开发工具·mcp
AI大模型-小雄7 天前
ChatGPT Plus 够不够用?从5种开发场景判断是否需要 Pro
chatgpt·ai编程·开发工具·codex·chatgpt plus·chatgpt pro
云泽80810 天前
Visual Studio 2026 新手保姆级教程:环境搭建、界面优化与编译器配置详解
开发语言·c++·c·开发工具·visual studio
武雄(小星Ai)11 天前
2026年7月 AI 编程工具横评:Claude Code vs Cursor vs GitHub Copilot 实测对比
ai·开发工具·claude·cursor·对比评测
AI大模型-小雄13 天前
2026 年 AI 工具怎么选?ChatGPT、Codex 和其他 AI 工具适合哪些人?
人工智能·gpt·chatgpt·开发工具·codex·ai工具
qingmiaozhuan16 天前
电脑录屏没有声音还能补救吗?音频采集链路详解及4种技术方案
前端·电脑·音视频·开发工具·电脑录屏·电脑录屏软件
AI大模型-小雄17 天前
ChatGPT 上传文件失败怎么办?从格式、大小到账号状态逐项排查
gpt·chatgpt·ai编程·开发工具·codex·ai办公·chatgpt pro
AI大模型-小雄19 天前
2026 年 7 月国内怎么开通 ChatGPT Pro?5x / 20x 区别、适合人群与避坑指南
人工智能·gpt·chatgpt·ai编程·开发工具·codex·chatgpt pro