1. 31 May, 2018 3 commits
    • Steve McIntyre's avatar
      Cope with being called from directories other than the webwml root · 4ec44f54
      Steve McIntyre authored
      Added extra directory handling code to allow for this where it makes
      sense. This should now work for all public APIs, except:
       * cache_file()
       * cache_repo()
       * path_info()
       * get_topdir()
      The first two are almost internal anyway, and the last doesn't take
      any arguments to allow for anything to work *except* when the caller
      is somewhere within the webwml repo. path_info() is *hard* to change
      here, and all the callers I can find are already expecting to be in
      webwml anyway. I've added checks in each of these to at least complain
      clearly when expectations are not met.
      These changes might slow things down slightly due to repeated chdir()
      calls, but meh.
      Also added some extra tests for this in the vcs-test.pl script.
    • Steve McIntyre's avatar
    • Steve McIntyre's avatar
      Fix test harness git commit hashes · 9ad73da7
      Steve McIntyre authored
      Hashes were from an old test repo, update them to match the final
      published repo
  2. 30 May, 2018 1 commit
    • Steve McIntyre's avatar
      Major updates to perl scripts · afdb2973
      Steve McIntyre authored
      Add new git backend in VCS_git.pm
      Switch from an old-style set of function calls to an OO API. This
      allows for initialisation and some state to be kept in the VCS_git.pm
      module - namely a per-file cache of commit hashes for a massive
      performance boost when doing lots of lookups.
      Extend the API with 2 new utility functions:
       * get_oldest_revision()
       * next_revision()
      Extended the vcs_cmp_rev() function to take a filename too.
      Add a test harness to validate the git and cvs backends.
      Add switch_to_git_translations.pl to walk the tree and switch from cvs
      revisions to git commit hashes in translation-check headers.
      Change all of our local scripts to use the new Local::VCS frontend
      *where it makes sense*. Some scripts will behave slightly differently,
      as the new world can't exactly match the old behaviour.
      CVS version numbers
      check_desc_trans.pl: 1.9 -> 1.10 
      check_trans.pl: 1.93 -> 1.94 
      copypage.pl: 1.42 -> 1.43 
      karma.pl: 1.6 -> 1.7 
      remove_stale.pl: 1.22 -> 1.23 
      smart_change.pl: 1.8 -> 1.9 
      stattrans.pl: 1.127 -> 1.128 
      switch_to_git_translations.pl: INITIAL -> 1.1 
      touch_translations.pl: 1.9 -> 1.10 
      vcs-test.pl: INITIAL -> 1.1 
      Perl/Local/Util.pm: 1.4 -> 1.5 
      Perl/Local/VCS.pm: 1.3 -> 1.4 
      Perl/Local/VCS_CVS.pm: 1.13 -> 1.14 
      Perl/Local/VCS_git.pm: 1.12 -> 1.13 
      Perl/Webwml/Langs.pm: 1.5 -> 1.6 
      Perl/Webwml/TransIgnore.pm: 1.3 -> 1.4