Shift Linux SVN up


Recommended Posts

PM's have all been sent, if you have any issues, let me know. I can post a general overview of how to use SVN, based on the one I posted for the Neowin Devs, but I'm not as deeply involved in your dev processes, so I'm not as sure about how you're going to use it, or indeed what svn clients you intend to use with it.

Basically, I've setup an empty repo, with a trunk, where the majority of the work will happen, and then 3 branches, one for each window manager, where things specific to those parts will happen. Window manager work should be kept out of trunk to avoid wm's overlapping in the 3 separate releases. Like I said, if you have any questions about how to use it, just give me a shout.

This guide assumes you're using SVN at a linux shell (as this is how Neowin Development mostly occurs)

So, the basics:

Before you can start, obviously you need to checkout a copy of the code somewhere locally. Make yourself a folder to work in, and cd into it. Then run the command:

svn co svn://shiftlinux.net/shift/ .

Once you're happy with the changes you've made, and want to commit them for the rest of us to use/work on, simply run the command:

svn ci

this will 'check-in' any modified files in the current directory, and any below, so make sure you're in the right folder ;). If you just want to check in a single change, use the command

svn ci filename

and obviously, this will only check in changes to that one file. You can string various file names together to check in however many files you wish, but not all that have been modified. Please try to only make one change per commit i.e. Don't fix 100 bugs, then check in the changes all in one go, that just causes a pain if we need to roll back a single bug-fix for some reason. When you run the command, it will open up Nano (text editor) for you to enter a log message, please enter something descriptive, so we can tell what has been fixed in this change.

If you've changed a file, and want to revert that change, use the command

svn revert filename

and this will return the file to the state it was in last time you updated from the repo.

To update your working-copy (please do this every time you start working on anything, so you're working on the latest code), use the command

svn up

again, this applies to the current folder and those below, so make sure you're in the right one ;)

If you want to see which files have been modified locally since you last updated, use the command

svn stat

this will give you a list of all the files changed / marked for addition / marked for deletion / not tracked by svn.

The more complex:

Once you have modified a file, it is possible to see what changes you made to it using the command

svn diff filename

this will give you a diff report between your current file, and it's state at the last update.

If you want to see what was changed in a file between certain revisions, you can use the same command, but with extra parameters

svn diff filename -r start:end

where start and end are the revisions you are interested in (HEAD can be used in place of the current revision number)

Once you have changed something in trunk, you will want to merge that change into each of the WM branches, for this you will need the svn merge command.

Use the command

svn log

in the root of your working copy to get a full list of changes made. This will eventually become quite long, so you can use the command

svn log -r start:HEAD

to start the log from the revision you specify, up until the current point.

Once you know which revisions you wish to merge (ask me if you're not totally sure, I'll give you a hand working it out), you will need to cd to a working copy of each branch.

Once there, you need to merge your changes into the working copy with the following command

svn merge -r start:end svn://shiftlinux.net/shift/trunk .

NOTE: The revision number you enter for the start point MUST be one less than the revision number of the first change you wish to merge. If you are not sure that this is right, add the parameter '--dry-run' and it will show you a list of files to be merged, without merging them.

Remember to cd to each WM branch and do this for each one

When the merge is complete, you will then need to check the merged code into the repo again, so cd to the branches directory and run the command

svn ci

and specify in the log message which revisions you have merged into the code (Example log message: "Merged changes (r16:18) to window manager branches from trunk") This way we can trace what changes have been included.

That's the basics of how to use it anyway. I'm sure there will be questions, so just give me a shout if you have any!

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.