Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,251
    • Issues 4,251
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 396
    • Merge Requests 396
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Wiki
    • Building
  • sync all

Last edited by Bertram Felgenhauer Feb 08, 2015
Page history New page

sync all

Note: This page is here mostly for historical reasons. A GHC tree used to consist of multiple independent repositories. The sync-all script let you operate over them all at once. It is still present in the root directory of the tree, but since all repositories have been turned into git submodules, you shouldn't need it anymore. See getting the sources for up-to date information about fetching the sources, and git working conventions and git submodules for the new submodule workflow.

sync-all: operations over all GHC repositories at once

The full documentation for sync-all is found by using the --help option:

  $ ./sync-all --help

(you can also find it by looking in sync-all)

Pulling new patches

If you have an existing tree, here is how to pull new patches into all repositories.

  $ ./sync-all pull
  $ ./sync-all get

The second step is required in the event that new packages or repositories have been added to GHC.

See Building/Hacking if you've never built anything before. See Building/Rebuilding for how to update your build after pulling patches.

You can also pull patches from another tree, by registering the other tree as a remote, and giving it a name (here anotherghc):

  $ ./sync-all -r /another/ghc remote add anotherghc
  $ ./sync-all pull anotherghc

where /another/ghc is a path to another local GHC repository. You can specify a remote repository here too, e.g. -r git://github.com/ghc (remember to omit the final "ghc.git" when using a remote repo).

The sync-all command is useful for finding out what patches you have relative to another repository:

  $ ./sync-all fetch anotherghc
  $ ./sync-all new anotherghc

this tells you which patches there are in your local repository tree relative to the tree over in /another/ghc.

Clone repository

GHC Home
GHC User's Guide

Joining In

Newcomers info
Mailing Lists & IRC
The GHC Team

Documentation

GHC Status Info
Working conventions
Building Guide
Debugging
Commentary

Wiki

Title Index
Recent Changes