跳转到内容
返回
本页目录

使用文档

P4CaseSync 使用文档

P4CaseSync 的完整中文产品使用文档

P4CaseSync

P4CaseSync 是一个在 Perforce 提交前同步修正文件路径与文件名大小写的小工具。
在 Windows 下,P4 常把大小写“弱化”,导致上传后目录与文件被小写化。本工具会依据本地磁盘真实大小写纠正 p4 opened 中的文件路径,并可手动微调,再一键应用为 p4 move。

  • 扫描 Changelist(或 default)中的已打开文件
  • 使用 p4 where 映射并读取本地真实大小写,支持整条路径逐级纠正
  • 列表颜色区分(直观辨识)
    • 灰色:更改前后完全一致(无需修改)
    • 绿色:与“自动修正值”一致(自动处理)
    • 红色:用户手动修改,与自动值不一致
  • 双击整行弹出编辑框(居中显示)
  • 应用修改后做一致性检测;不一致自动尝试“双步 move 回退法”,仍不一致判失败
  • 仅显示 edit / add / move/add,自动隐藏删除类动作
  • 顶部有颜色说明与“仅显示需要修改的文件”开关
  • 列表行显示“更改前 / 更改后”,双击行可编辑“更改后”
  • Windows(推荐)
  • Python 3.8+
  • 已安装 Perforce CLI p4(命令行需要可用)
  • Tkinter(Python 自带)
  • (开发/打包选用)PyInstaller

终端窗口
git clone https://github.com/<your-org-or-user>/P4CaseSync.git
cd P4CaseSync

A. 使用 Miniconda / Anaconda(推荐)

Section titled “A. 使用 Miniconda / Anaconda(推荐)”
终端窗口
# 新建环境(示例用 python 3.11)
conda create -n p4casesync python=3.11 -y
conda activate p4casesync
# 安装打包所需(运行本工具本身无需第三方包;打包需要 PyInstaller)
pip install -r requirements.txt
# 如果你没有 requirements.txt,可先: pip install pyinstaller
终端窗口
# Windows PowerShell
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
# macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

说明:项目运行仅依赖标准库与 p4 命令;requirements.txt 一般只需要记录 pyinstaller(用于打包)。
如果你没有该文件,可创建一个只包含:

pyinstaller>=6
终端窗口
# 在激活环境下
python Main.py

本项目使用动态路径导入,需要通过 spec 文件指定隐藏导入。

终端窗口
pyinstaller P4CaseSync.spec

生成的 exe 位于 dist/P4文件名大小写同步工具.exe

P4CaseSync.spec 已配置:

  • 单文件打包(--onefile)
  • 无控制台窗口(--noconsole)
  • 隐藏导入模块:LoginUI, MainUI, Core
  • 输出文件名:P4文件名大小写同步工具

如需修改配置(如文件名、图标),编辑 P4CaseSync.spec 文件:

  • 修改名称:找到 name='P4文件名大小写同步工具' 这行
  • 添加图标:将 icon=None 改为 icon='icon.ico'
  • 显示控制台:将 console=False 改为 console=True(用于调试)

不要将命令行参数与 spec 文件混用:

终端窗口
# ❌ 错误示例
pyinstaller -F -w P4CaseSync.spec # 会报错
# ✅ 正确用法
pyinstaller P4CaseSync.spec

本项目使用 InjectSysPath() 动态添加模块路径,PyInstaller 无法自动识别 Source/UI 和 Source/Logic 下的模块。spec 文件通过 hiddenimports 参数显式声明这些模块,确保打包成功。


  1. 打开工具,选择需要处理的 Changelist(默认 default)。
  2. 工具自动列出文件:
    • 灰色:更改前后相同,跳过
    • 绿色:自动按本地真实大小写修正
    • 红色:你手动修改过且与自动值不同
  3. 如需调整,双击行,在弹窗中修改“更改后”路径。
  4. 点击 应用修改:会依次 p4 move,并进行一致性复核;必要时使用“双步 move 回退法”。
  5. 在 P4V 或命令行正常提交。

Q1: 为什么显示“灰色大条”或残影?
A: 已修复。刷新列表时我们会销毁所有子控件(含分隔线),避免残留。

Q2: 为什么有时显示“X”而不是“✔”?
A: 取决于系统主题。我们优先使用 Windows 的 vista/xpnative 主题。若仍不满意,可换自定义图标方案。

Q3: 本地路径不存在怎么办?
A: 会尽可能纠正到能访问到的最深父目录,无法纠正的部分保持原样,并允许手动编辑。

Q4: 提交动作里包含删除怎么办?
A: 我们默认过滤删除类动作(delete/move/delete),只显示 edit/add/move/add。


  • 颜色规则判断(最终版):
    1. 更改后 == 更改前 → 灰
    2. 更改后 != 更改前 且 更改后 == 自动值 → 绿
    3. 更改后 != 自动值 → 红
  • 双击整行弹出编辑框;编辑后立即刷新颜色
  • 一致性校验失败 → 自动尝试双步移动(临时名 → 目标名)再校验

“minicode 虚拟环境”一般指 Miniconda。下面分别给出 Conda 与 pip/venv 两套方案。

导出(推荐从历史,避免把无关包写进去):

终端窗口
# 当前激活 p4casesync 环境
conda env export > environment.yml

还原:

终端窗口
conda env create -f environment.yml
conda activate p4casesync

导出:

终端窗口
# 激活你的 venv 后
pip freeze > requirements.txt

还原:

终端窗口
# Windows
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
# macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

MIT License


感谢所有使用与反馈 P4CaseSync 的开发者。遇到问题欢迎提 Issue,或提交 PR 参与改进。