Skip to content

Automatic git powered version control for KSP craft and save files

Notifications You must be signed in to change notification settings

Sujimichi/Jebretary

Repository files navigation

Jebretary

version 0.4.0

Jebretary is a stand alone tool for the Kerbal Space Program. It uses the git version control system to track changes to your craft, subassembly and save files. It runs as a web server (written in Ruby on Rails) on your KSP machine so you can interface with it from any web enabled device on your network. Jebretary is designed to run on windows and comes packaged in an installer that contains everything that is required except git. git needs to be installed separately.

  • Each time you launch a craft that you’ve made changes to, Jebretary will track the changes as a new version.

  • Subassemblies are tracked each time they are changed.

  • Every quicksave and autosave is tracked.

  • You can revert a craft/subassembly/save back to any past version by clicking on the version you want.

  • autosaves can also be loaded as quicksaves so they can be loaded in game by pressing f9.

  • Craft and Subassemblies can be set to sync between selected campaigns, changes in one campaign will be mirrored to the selected campaigns.

Install git and then install Jebretary

See the KSP forum for latest download link and more details on installing and use forum.kerbalspaceprogram.com/threads/72212-Jebretary-Automatic-Version-Control-%28backups%29-for-craft-and-saves

Issues

  • Editing Commit Messages

    • Response from adding/updating a message will sometimes crash the interface. Although most times the update is written.

  • General

    • occasionally shows the no campaigns messages on instances show page when there are campaigns present.

    • find a fast way of getting the index of a commit, that doesnt involve having to select all commits, surly git must have a clever fast way of doing that.

Planned/Todo

  • remote backups; push the repos for each campaign in an instance into a user defined folder somewhere (possibly over network)

  • setting to disable shutdown from remote device, to block the annoying sibling/parent/housemate factor

  • tracking of user defined files in GameData (maybe)

Later/possible ideas

  • indicator by craft in list that show if they are in service (might not be possible as craft can be renammed in flight)

  • screen shot auto-associating. Given a knowledge of where a players scr-shots go, during a certain period after launch or on demand, associate any new scr-shots with the craft

  • this feature would introduce a dependence on the DB, up till now all info is recreatable from the git repo (the DB just acts to index).

  • possibile upload to imgur option?

  • ability to not track a craft (remove from repo)

  • possibly, this may be problematic

MajorFeature- Online System - KerbalX

  • users sign up for a free account online with KerbalX and get a token which they set in Jebretary

  • Jebretary can use this token to access the users online account and can then upload craft to the users account

  • This would enable online, cloud storage of craft and would be a way of sharing craft.

    • craft will also have more info, including its required mods.

  • A craft posted on JebWb can just be updated with a click from Jerbretary.

  • option to have private and public craft, like GitHub it will be free to store public craft and it will cost (a little) to have more than 5 private craft.

Version History

== 0.4.0
  - New Feature - Craft Synchronizing
    - you can set certin craft and subassemblies to be sync'd between specific campaigns.  This means that changes made to the craft/sub in 1 campaign will automatically be mirrored to the other campaigns it is sync'd with.
    - new copy/move interface (which now also controls sync options)
    - the copy/move/sync and the delete dialogs can now be accessed from the list of craft in each campaign as well as on each crafts' page.
  - Choose which mode x64 or x32 to launch each instance (assuming both exe's are present as in the steam version).
  - bug fixes
    - deleting or moving an install no longer causes the background monitor to crash.
    - the deleted craft was not being shown when only subassembles had been deleted, fixed

== 0.3.4
  - bug fixes
    - craft which had been deleted before re-installing Jebretary where not being detected
    - craft with copied parts (using module manager) should now be detected propperly
  - new background processing system
    - now responsible for all part checking actions
  - better logic for skipping campaigns that don't need to be processed (each pass by liquid.exe should be faster)
  - Jebretary will now refresh its info about installed parts for each instance when Jebretary starts
    - does mean it takes a bit longer to start, but it means Jebretary can know if you've changes/updated your parts
    - upon detecting that parts have been changed Jebretary will re-scan craft part info to update it when the changed part (and check for missing parts)
    - Users can disable the auto refresh of part info. If you are not changing you parts then updating the part info is not required.
      - if you do change you parts, you can request a re-scan of part info on the page for a particular Instance.

== 0.3.3
  - support for x64 version of KSP
  - applied patch from EdvardM to fix an edge case where a commit doesn't have a date stamp.
  - fixed caching method in campaign_controller. Live info of changes was not being displayed as changes happed in some campaigns.

== 0.3.2
  - bug fixs 
    - cfg files in the root of GameData and in saves are now ignored
    - Source folders from some mods which contain cfg files are ignored.

== 0.3.1
  - page load caching for campaign, craft and subassembly show pages 
  - faster display of revert save dialogs
  - shows a notice if there is an error.log to upload and instructions on how to upload (can be disabled in settings)
  - launches browser tab when started

==0.3.0
  - new feature: Subassembly Tracking

==0.2.5
  - bug fix; can now launch KSP if the path to KSP has spaces
  - more error logging

==0.2.4
  - better error handling in part parsing section
  - added a simple error logger, errors will be written to an error.log file in the root of Jebretary

==0.2.3
  - you can define which "mods" are considered stock for Jebretary to distinguish mod or stock craft. Defaults are "Squad" and "NASAmission"
  - bug fix; parts that have non UTF-8 chars no longer cause a problem when parsing parts
  - bug fix; parts that use both '.' and '_' in their part names are now identified correctly

==0.2.2
  - bug fix, an error in error-handling was preventing errors from being handled! ;)
  - crafts list is now only updated if there has been a change to display. With large numbers of craft and the new parts info displayed this request was being slow

==0.2.0
  - craft part information
    - system builds and caches a map of the parts found in each KSP install
    - determine if a craft is stock or mod
    - determine if a crafts parts are missing from the game
    - display of used parts on a crafts page with link that opens a window to that part

==0.1.5
  - Can now detect a running instance of KSP and get the executable path
    - rather than typing in the path you want to track, just run KSP and then select it.
  - KSP can be launched and shutdown from the front page
    - you can now launch KSP on your KSP machine from a mobile device somewhere on your network.

==0.1.4
  - bug fix, campaigns with existing git repo where not getting detected by a fresh install of Jebretary
  - bug fix, updating a message at the same time as the craft is commited was not working.
  - bug fix, only the most recent instance was being processed
  - reduced occurance of commit messages having to be written to repo after commit.
  - system only performs check for previously deleted craft(ie craft deleted and commited to git before using Jebretary) once on startup.
  - further improvments to runing speed of background monitor
  - minor interface tweeks

==0.1.3
  - rewrote controller logic for editing messages
  - fixed bug where deleting a craft via KSP or OS was crashing interface
  - more efficient selects of git history -> faster updating of craft list
  - improvment to background monitor, runs faster now!

==0.1.2
  - MAJOR change to backend.  Scrapped 3rd party code and wrote my own git interface, faster, stronger, better!!
  (should really be several versions!)

==0.1.1
  - added sort 'n' search on the craft lists
  - fixed bug where a campaign without any craft hung the interface

==0.1.0
  - test release version

==0.0.12
  - changed entry point for background runner
  - DB select and view loading optimisation
  - ready for test release!?

==0.0.11
  - quicksave can now be replaced with the persistent file allowing for f9 reload
  - show deleted craft link only is shown if there are tracked deleted craft

==0.0.10
  - bug fixes
  - changed how commit messages for saves are shown
  - minor System optimizaton
  - more detailed elapsed time display
  - updated help

==0.0.9
  - major change to how commit messages are updated into the repo.  User can now edit commit messages while there are untracked changes in the repo.  The messages will be stored on the craft object and will be written to the repo later, once all changes have been tracked.
  - quicksave and persistent files can now be reverted from interface
  - interface automattically displays either current project or saves depending on which has been most recently changed. While editing a craft the current project is show, once the user does a quicksave it will switch to displaying saves.
  - git garbage collector is called periodically to ensure the repo is kept compressed.

==0.0.8
  - added quicksave and persistent file tracking (but no facility to revert as yet).
  - added ability to move/copy craft file to another campaign in the same or other instance.
  - added ability to delete craft files.
  - Fixed - editing a commit message at the same time as the craft is automatically commited no longer looses the message

==0.0.7
  - improved commit message editing.  Now current commit message can be editied while the git repo is not in a state to take a message update
    + messages from previous commits can still be edited as before
    + messages are edited in a dialog which gets around the page update issue
  - changed how craft are reverted.  Instead of reverting automattically creating a new commit (version), now reverting a craft leaves it as untracked changes.  Makes it easier to quickly check a past version and then return to current state, or check out several past versions one after the other while looking for the right one (without each checkout automatically meaning a new commit).
  - started adding help tips to appear on first use and on request
  - added settings file which currently is used to track which help tips the user has seen.
  - optimized System.process (background polling loop).

==0.0.6
  - autosaved ships are no longer shown as current project
  - flags for campaigns are processed sooner
  - craft previously deleted in the repo are now detected (and craft object assigned as marked as deleted).  Now previously deleted craft can be recovered

==0.0.5
  - can now choose to revert to a previous commit without commiting the revert.  This allows for a temporary revert without adding more to the timeline
  - can now revert while there are untracked changes, with a warning to say untracked changes will be lost

==0.0.4
  Stuff that happened before

exe Build Process in windows

- in git bash prompt in <path_to_jebretary>
bundle install
rake ocra_prepare

-ensure a blank and up-to-date DB setup (production.dqlite) is in jebretary_build (folder adjecent to jebretary)

-in windows cmd
r:
<path_to_jebretary>\build_app.bat

- if entry points (liquid.exe or launch.exe) have changed run (in win bash)
<path_to_jebretary>\build_launcher.bat
<path_to_jebretary>\build_runner.bat
-and ensure both are present (along with DB) in jebretary_build

Copyright © 2014, Jeremy Comer All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

Automatic git powered version control for KSP craft and save files

Resources

Stars

Watchers

Forks

Packages

No packages published