Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Diff ManifestsNew to Visual Studio Code? Get it now.
Diff Manifests

Diff Manifests

craftslab

|
7 installs
| (0) | Free
Deep manifest comparison via Gerrit & Gitiles API
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Diff Manifests VS Code Extension

English | 简体中文

A Visual Studio Code extension for comparing Android manifest files using the diffmanifests Python package. This extension provides a seamless integration of the diffmanifests CLI tool into VS Code, supporting Windows, Ubuntu and macOS platforms.

Features

  • 🔍 Deep Manifest Comparison: Compare two manifest XML files directly from VS Code
  • 📋 Sidebar View: Dedicated sidebar with quick access to all features and settings
  • ⚡ Quick Actions: Compare manifests, check environment, and manage settings from sidebar
  • 📂 Recent Files: Track and quickly access recently compared files
  • ⚙️ Configurable: Customize Python path, config file, and output format
  • 📊 Multiple Output Formats: Support for JSON, TXT, and Excel output formats
  • 🔄 Auto-Installation: Automatically offers to install the diffmanifests package
  • 📝 Output Panel: View detailed comparison logs and results
  • 🌐 Cross-Platform: Works on Windows, Ubuntu, and macOS

Prerequisites

  • Visual Studio Code: Version 1.75.0 or higher
  • Python: Version 3.7 or higher with pip package manager
  • Node.js & npm: Version 16.x or higher (for building from source)

Installation

📖 For detailed platform-specific installation instructions, see INSTALL.md

Quick Install (Recommended)

Windows

# Install Python package
pip install diffmanifests

# Navigate to extension directory
cd C:\path\to\diffmanifests\vscode

# Build extension
npm install
npm run compile

# Package extension
npm install -g @vscode/vsce
vsce package

# Install in VS Code
code --install-extension diffmanifests-1.0.0.vsix

Ubuntu/Linux

# Install Python package
pip3 install diffmanifests

# Navigate to extension directory
cd /path/to/diffmanifests/vscode

# Build extension
npm install
npm run compile

# Package extension
npm install -g @vscode/vsce
vsce package

# Install in VS Code
code --install-extension diffmanifests-1.0.0.vsix

Installation Methods

Method 1: From VSIX File (Local Installation)

  1. Build the extension:

    cd vscode
    npm install
    npm run compile
    vsce package
    
  2. Install via command line:

    code --install-extension diffmanifests-1.0.0.vsix
    
  3. Or install via VS Code UI:

    • Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
    • Type "Extensions: Install from VSIX"
    • Select the generated .vsix file

Method 2: Development Mode (For Testing)

  1. Open the vscode folder in VS Code
  2. Press F5 to launch Extension Development Host
  3. Test the extension in the new window

Method 3: From VS Code Marketplace (When Published)

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "Diff Manifests"
  4. Click Install

Post-Installation Setup

Configure Python Path

After installation, configure the Python path for your platform:

Windows (settings.json):

{
  "diffmanifests.pythonPath": "python"
}

Ubuntu/Linux (settings.json):

{
  "diffmanifests.pythonPath": "python3"
}

Verify Installation

# Check extension is installed
code --list-extensions | grep diffmanifests

# Check Python package is installed
pip show diffmanifests  # Windows
pip3 show diffmanifests  # Ubuntu/Linux

Usage

Method 1: Sidebar (Recommended)

  1. Click on the Diff Manifests icon in the Activity Bar (left sidebar)

  2. In the sidebar, you'll see:

    • Actions: Quick access to compare manifests and other operations
    • Recent Files: List of recently compared files for quick access
    • Settings: View and modify extension settings
    • Quick Links: Access documentation and GitHub repository
  3. Click "Compare Manifests" to start a new comparison

  4. Follow the prompts to select files

  5. View results in the output panel or open the result file

Method 2: Command Palette

  1. Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
  2. Type "Diff Manifests: Compare Two Manifest Files"
  3. Select the first manifest file (manifest1)
  4. Select the second manifest file (manifest2)
  5. Select or confirm the config file
  6. Choose the output file location
  7. View the results

Method 3: Context Menu

  1. Right-click on a manifest XML file in the Explorer
  2. Select "Diff Manifests: Compare Selected Files"
  3. Follow the prompts to select the second manifest and config file
  4. Choose the output file location
  5. View the results

Method 4: Using Settings

Configure default settings for faster workflow:

  1. Open Settings (Ctrl+,)
  2. Search for "diffmanifests"
  3. Configure:
    • Python Path (if not using system default)
    • Default Config File path
    • Output Format (JSON or Excel)
    • Auto-install preference
    • Output panel visibility

Configuration

📖 For detailed configuration instructions and examples, see CONFIGURATION_GUIDE.md

The extension provides the following configuration options:

Setting Type Default Description
diffmanifests.pythonPath string "python" Path to Python executable
diffmanifests.packagePath string "" Path to diffmanifests package (only used when Auto Install is off)
diffmanifests.gerrit.url string "https://android-review.googlesource.com" Gerrit server URL
diffmanifests.gerrit.user string "" Gerrit username
diffmanifests.gerrit.password string "" Gerrit password/token
diffmanifests.gerrit.queryOptions array ["CURRENT_REVISION"] Gerrit query options
diffmanifests.gitiles.url string "https://android.googlesource.com" Gitiles server URL
diffmanifests.gitiles.user string "" Gitiles username
diffmanifests.gitiles.password string "" Gitiles password/token
diffmanifests.gitiles.timeout number -1 Gitiles timeout in seconds, -1 for no timeout
diffmanifests.gitiles.retry number 1 Gitiles retry attempts
diffmanifests.outputFormat string ".json" Output format (.json, .txt, or .xlsx)
diffmanifests.autoInstall boolean true Auto-install diffmanifests if not found
diffmanifests.showOutputPanel boolean true Show output panel when running

Example Configuration

Add to your settings.json:

{
  "diffmanifests.pythonPath": "python3",
  "diffmanifests.packagePath": "",
  "diffmanifests.gerrit.url": "https://android-review.googlesource.com",
  "diffmanifests.gerrit.user": "your-username",
  "diffmanifests.gerrit.password": "your-password-or-token",
  "diffmanifests.gerrit.queryOptions": ["CURRENT_REVISION"],
  "diffmanifests.gitiles.url": "https://android.googlesource.com",
  "diffmanifests.gitiles.user": "",
  "diffmanifests.gitiles.password": "",
  "diffmanifests.gitiles.timeout": -1,
  "diffmanifests.gitiles.retry": 1,
  "diffmanifests.outputFormat": ".json",
  "diffmanifests.autoInstall": true,
  "diffmanifests.showOutputPanel": true
}

Quick Configuration from Sidebar

You can also configure settings directly from the sidebar:

  1. Open the Diff Manifests sidebar
  2. Expand the "Settings" section
  3. Click on any setting item to modify it:
    • Python Path: Change Python executable path
    • Package Path: Set custom diffmanifests installation path (shown only when Auto Install is off)
    • Config File: Select default config.json file
    • Output Format: Switch between JSON and Excel
    • Auto Install: Toggle automatic installation
    • Show Output: Toggle output panel visibility
    • Open Settings: Access full extension settings

Available Commands

All commands are available via Command Palette (Ctrl+Shift+P):

  • Diff Manifests: Compare Two Manifest Files - Start a new comparison
  • Diff Manifests: Compare Selected Files - Compare from selected file
  • Diff Manifests: Open Output File - Open a result file
  • Diff Manifests: Check Environment - Verify Python and package installation
  • Refresh (Sidebar) - Refresh the sidebar view
  • Open Settings - Open extension settings
  • Configure Python Path - Set Python executable path
  • Configure Config File - Set default config file
  • Configure Output Format - Choose output format
  • Toggle Auto Install - Enable/disable auto-installation
  • Toggle Show Output Panel - Enable/disable auto-show output
  • Clear Recent Files - Clear recent files list

Python Package Installation

The extension requires the diffmanifests Python package. It will offer to install it automatically on first use, or you can install it manually:

Windows:

pip install diffmanifests
pip show diffmanifests  # Verify installation

Ubuntu/Linux:

pip3 install diffmanifests
# Or with --user flag if permission denied
pip3 install --user diffmanifests
pip3 show diffmanifests  # Verify installation

macOS:

pip3 install diffmanifests
pip3 show diffmanifests  # Verify installation

Platform-Specific Setup

Windows

  • Ensure Python is added to PATH during installation
  • Check "Add Python to PATH" when installing Python
  • Use python command by default
  • Use forward slashes or double backslashes in path settings

Ubuntu/Linux

  • Use python3 command (Python 2 may be installed as python)
  • Install pip if not available: sudo apt install python3-pip
  • Update the diffmanifests.pythonPath setting to python3
  • Use --user flag for pip install if permission denied

macOS

  • Use python3 command (similar to Linux)
  • Install Python 3 via Homebrew: brew install python3
  • Update the diffmanifests.pythonPath setting to python3

Commands

The extension provides the following commands:

  • Diff Manifests: Compare Two Manifest Files - Start a new comparison
  • Diff Manifests: Compare Selected Files - Compare using selected file
  • Diff Manifests: Open Output File - Open a previous output file

Config File Format

The extension requires a config.json file with Gerrit and Gitiles API configuration:

{
  "gerrit": {
    "host": "your-gerrit-host.com",
    "port": 443,
    "protocol": "https",
    "user": "your-username",
    "pass": "your-password"
  },
  "gitiles": {
    "host": "your-gitiles-host.com",
    "port": 443,
    "protocol": "https"
  }
}

Output Formats

JSON Output

Provides detailed comparison results in structured JSON format:

  • Project differences
  • Commit information
  • Hashtags
  • Change details

TXT Output

Generates a plain text file with:

  • Human-readable comparison results
  • Easy to share and view
  • Simple text format
  • No special software required

Excel Output

Creates an Excel spreadsheet with:

  • Summary sheet
  • Detailed changes per project
  • Easy filtering and sorting
  • Formatted tables

Troubleshooting

📖 For comprehensive troubleshooting, see INSTALL.md

Common Issues

Python Not Found

Windows:

# Add Python to PATH manually
# 1. Find Python installation: C:\Users\<user>\AppData\Local\Programs\Python\Python3X
# 2. Add to System Environment Variables > Path
# 3. Restart VS Code

Ubuntu/Linux:

# Use python3 instead of python
# Update extension settings to use python3
python3 --version

Package Not Installed

Windows:

pip install diffmanifests
pip show diffmanifests

Ubuntu/Linux:

pip3 install diffmanifests
# Or with --user flag if permission denied
pip3 install --user diffmanifests
pip3 show diffmanifests

Extension Not Working

  1. Check if extension is installed:

    code --list-extensions | grep diffmanifests
    
  2. Reload VS Code:

    • Press Ctrl+Shift+P
    • Type "Reload Window"
  3. Check the Output panel:

    • View > Output
    • Select "Diff Manifests" from dropdown

diffmanifests Command Not Found

  1. Verify Python package is installed:

    python -m pip show diffmanifests    # Windows
    python3 -m pip show diffmanifests   # Ubuntu/Linux
    
  2. Test running directly:

    python -m diffmanifests --help      # Windows
    python3 -m diffmanifests --help     # Ubuntu/Linux
    
  3. Check the extension output panel for detailed error messages

Permission Errors

Ubuntu/Linux:

# Install with --user flag
pip3 install --user diffmanifests

# Or use virtual environment
python3 -m venv venv
source venv/bin/activate
pip install diffmanifests

Windows:

# Run as administrator or use --user flag
pip install --user diffmanifests

Output File Not Created

  1. Check the Output panel (View > Output > Diff Manifests) for error messages
  2. Verify config.json format is correct (see Config File Format section)
  3. Ensure manifest files are valid XML
  4. Check network connectivity for Gerrit/Gitiles API access
  5. Verify output directory has write permissions

Development

Setup

cd vscode
npm install

Compile

npm run compile

Watch Mode

npm run watch

Package

npm install -g @vscode/vsce
vsce package

Additional Resources

  • 📖 Installation Guide - Detailed platform-specific installation instructions
  • 🚀 Quick Start Guide - Get started quickly
  • 👨‍💻 Development Guide - For contributors and developers
  • 📝 Changelog - Version history and updates
  • 🔗 GitHub Repository
  • 📦 PyPI Package
  • 🐛 Issue Tracker

Getting Help

  • Detailed Installation: See INSTALL.md for step-by-step platform-specific instructions
  • Troubleshooting: Check INSTALL.md#troubleshooting for solutions
  • Quick Reference: See QUICKSTART.md for common tasks
  • Report Issues: Use our Issue Tracker

Uninstallation

Remove VS Code Extension:

code --uninstall-extension craftslab.diffmanifests

Remove Python Package:

pip uninstall diffmanifests    # Windows
pip3 uninstall diffmanifests   # Ubuntu/Linux

License

Apache-2.0

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

For development setup and guidelines, see DEVELOPMENT.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft