Backporting Tutorial - cmangos/issues GitHub Wiki

This tutorial was written by stfx for developers to correctly backport commits and shows an example on backporting from mangos-wotlk to mangos-tbc.

1. Set up the directory

  • Clone mangos-tbc repo
  • Add mangos-wotlk remote: git remote add wotlk _url_

2. Backport commits

  • Fetch from mangos-wotlk every time something changes there: git fetch wotlk
  • Use backport tool with hash of commit to backport: contrib/backporting/mangos-backport.sh _commit_hash_
  • Check and resolve conflicts if any exist
  • If you had to resolve conflicts you still have to amend the commit: git commit -s --amend

2.1. Backport commits with sql changes

  • Build git_id tool in release mode if you did not already (located in contrib\git_id)
  • Push every outstanding commit because git_id checks last version from remote
  • Fetch from mangos-wotlk (like before)
  • Use backport tool (like before)
  • Check and resolve conflicts (like before)
  • Rename the sql updates in sql/updates/* directory by adding the client version's prefix character at the start of the filename like so: 11754_01_mangos_mangos_string.sql -> s11754_01_mangos_mangos_string.sql
  • Amend commit (like before)
  • Use git_id in git bash: contrib/git_id/Release/git_id.exe
    • This automatically writes all db_version changes to sql/base/*.sql and sql/updates/*/*.sql files

3. Push the commits

  • Check correct authorship
  • Check commit number for commits with sql changes
  • Push to the mangos-tbc remote: git push origin master (assuming you named the mangos-tbc remote 'origin' which is the default after cloning)