Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ MUSHclient
➜ General
➜ MUSHclient source being made available on GitHub
MUSHclient source being made available on GitHub
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1 2
3
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Thu 21 Jan 2010 03:42 AM (UTC) Amended on Sun 24 Jan 2010 03:07 AM (UTC) by Nick Gammon
|
Message
| Following on from comments before about a better method being needed for the MUSHclient source, and to eventually save me time and effort, I am migrating it to Git. You can see the preliminary results here for version 4.45:
http://github.com/nickgammon/mushclient (or easier to remember maybe): http://mushclient.com/git
Various things have been reorganized compared to the earlier source distributions, to make it a bit more modular.
When I think it is complete, I will tag it, however you do that, as v4.45.
Information about using Git: Git Magic
You can read about Git, and find where to download the Git client from: git - the fast version control system |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| David Haley
USA (3,881 posts) Bio
|
Date
| Reply #1 on Thu 21 Jan 2010 06:39 AM (UTC) |
Message
| With bzr, you would "tag it" as a given version by creating a branch and calling that branch whatever you wanted. I presume that git has a similar mechanism. |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #2 on Thu 21 Jan 2010 07:18 AM (UTC) |
Message
| Can you tag the head? That is, if what is there is version 4.45, can I just tag it? Then start adding in changes? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #3 on Thu 21 Jan 2010 09:00 AM (UTC) Amended on Thu 21 Jan 2010 09:01 AM (UTC) by Nick Gammon
|
Message
| OK, things are more or less ready now. ;)
In order to make the git repository look reasonable (ie. unlike the way I normally work <grin>) I have tidied things up a bit ...
- Files that didn't seem relevant to compiling or installing were removed
- A whole lot of files were moved to subdirectories, to make the main top-level directory less cluttered. For example, scripting, xml, mxp, dialogs and more, are all now in their own subdirectories.
- To reflect these changes, various modifications were made to the source (eg., changing #include directives)
- The source distribution does not include major libraries not written by me, in particular:
Instead, a readme.txt file has been placed in the appropriate directories indicating how you might obtain those libraries, and make minor amendments to get them to compile OK.
- The installer file (mushclient.nsi) was modified to point to the relevant new directories, where applicable.
The resulting source *should*, if downloaded and compiled, yield version 4.45 of MUSHclient. However because of the changes mentioned (eg. to include paths etc.) it is not literally the source used to compile the released version 4.45.
The resulting "head" has been "tagged" as v4.45, indicating that if you retrieved the files "as at v4.45" (and don't ask me how to do that just yet) you should get the version 4.45 source. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #4 on Thu 21 Jan 2010 09:07 AM (UTC) |
Message
| If you have git installed, this command should pull in a copy of the current MUSHclient source:
git clone git://github.com/nickgammon/mushclient.git
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Twisol
USA (2,257 posts) Bio
|
Date
| Reply #5 on Thu 21 Jan 2010 07:51 PM (UTC) |
Message
| *drool* Thank you so much, Nick, this is awesome!
As for tagging stable releases, an approach I'm considering for my own projects is having two branches: 'stable' and 'development'. Work is done in 'development', and when a new version is ready for release, you just switch to the stable branch and merge in development, then add a tag like 'v4.45' for easy access. It gives the stable branch a tidy history of stable releases, and if you want to see more in-depth development history, you can look at the development branch.
David: From what I've read, git tags are basically just nonmoving branch heads, which sounds pretty much exactly the same as the bzr mechanism as you described it. |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | Top |
|
Posted by
| David Haley
USA (3,881 posts) Bio
|
Date
| Reply #6 on Thu 21 Jan 2010 08:16 PM (UTC) |
Message
| The nice thing about the bzr method of using branches to "tag" releases -- and I don't know if the git "nonmoving branch heads" do the same but I would presume they do -- is that each release can have its own directory and branch, as separate from the main development and stable branch. You can then merge changes from arbitrary branches into arbitrary other branches. (They have smart storage implementation to not duplicate information unnecessarily in the VCS database.)
So what you would do is similar to what you described, except that instead of (or in addition to, as your needs vary) tagging the stable as 4.45, you would branch it off.
This is more helpful when you need to apply maintenance patches to old versions, but MUSHclient's development doesn't really work that way. Old versions become obsolete as new versions come out, unlike some projects where version X is still supported when version X+1 comes out. |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | Top |
|
Posted by
| Twisol
USA (2,257 posts) Bio
|
Date
| Reply #7 on Thu 21 Jan 2010 08:32 PM (UTC) Amended on Thu 21 Jan 2010 08:33 PM (UTC) by Twisol
|
Message
| To do a maintanence patch as you describe, you'd simply checkout the tagged version you want to patch, then commit a new patch and re-tag it. It would create a new branch off of the original release, and the later versions' histories wouldn't be affected. This could be a good or bad thing depending on how you look at it, but I doubt bzr works much different.y |
'Soludra' on Achaea
Blog: http://jonathan.com/
GitHub: http://github.com/Twisol | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #8 on Thu 21 Jan 2010 08:34 PM (UTC) |
Message
| OK, still trying to work out how to use git.
Assuming you have used "clone" to make a copy of the source, you can do this to update to the latest version:
First, cd to the directory you cloned above (ie. 'mushclient' wherever you put it). Then
This should update your copy to match the one at github. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #9 on Thu 21 Jan 2010 08:41 PM (UTC) |
Message
| Now if you want to find exactly what version 4.45 had in it you can (from the mushclient directory) type:
This creates a branch (locally) such that your working directory now has the files as at version 4.45.
You can switch back to the master version like this:
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #10 on Thu 21 Jan 2010 08:47 PM (UTC) Amended on Thu 21 Jan 2010 08:49 PM (UTC) by Nick Gammon
|
Message
| To see what changes I have been making you can go to the mushclient project at GitHub:
http://github.com/nickgammon/mushclient
Near the top of the page (at present) I see a box like this:
Updated version number to 4.46
commit 218d75b45ed72085d7ea41236378d098b8d8e5ab
tree 66c7d35b20e29c9876ea2d1f790ad1551f8d76db
parent 248df7579b22bbb444453d47529d03b169e5bef2
nickgammon (author)
4 minutes ago
Now if you click on the "commit" link (the hex stuff in bold) then it opens a new page, somewhat like the following box.
Inside that (in a nice colour presentation) is a listing of everything in that commit:
MUSHclient.rc 8 ••••
doc.h 8 ••••
install/readme.txt 2 ••
MUSHclient.rc
- FILEVERSION 4,0,45,0
- PRODUCTVERSION 4,0,45,0
+ FILEVERSION 4,0,46,0
+ PRODUCTVERSION 4,0,46,0
It looks a lot better than that, but basically it shows that the version number got changed. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #11 on Thu 21 Jan 2010 10:50 PM (UTC) |
Message
| If you have a local version checked-out (eg. with the "clone" command) then you can see what differences have been made in files since the last version, like this:
git diff v4.45 -- lua/wait.lua
The two dashes are necessary to separate the commit tag (v4.45 in this case) from the file name(s).
Apparently, and I haven't tried this yet, you can compare between any versions like this:
git diff v4.45 v4.47 -- lua/wait.lua
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #12 on Fri 22 Jan 2010 12:08 AM (UTC) |
Message
| Here's another useful trick. Once you have got the latest version you can see what files changed since a previous version, like this:
C:\source\mushclient> git diff v4.45 --stat
.gitignore | 4 +
MUSHclient.rc | 8 +-
OtherTypes.h | 27 +-
TextDocument.cpp | 6 +-
dialogs/plugins/PluginsDlg.cpp | 32 +-
doc.cpp | 69 +++-
doc.h | 11 +-
install/mushclient.nsi | 2 +
install/readme.txt | 2 +-
lua/ppi.lua | 170 ++++++
lua/wait.lua | 33 +-
miniwindow.cpp | 40 ++-
mushview.cpp | 1207 +++++++++++++++++++++-------------------
mushview.h | 6 +-
readme.txt | 1 +
scripting/functionlist.cpp | 1 +
scripting/methods.cpp | 39 +-
worldsock.cpp | 2 -
18 files changed, 1035 insertions(+), 625 deletions(-)
You can immediately see from this which files have changed at all, and then what the changes were by looking at individual files. For example, the install/readme.txt file:
C:\source\mushclient> git diff v4.45 install/readme.txt
diff --git a/install/readme.txt b/install/readme.txt
index 20afae1..bfc060b 100644
--- a/install/readme.txt
+++ b/install/readme.txt
@@ -1,4 +1,4 @@
-MUSHclient version 4.45
+MUSHclient version 4.46
=======================
Thursday, 24th December, 2009
So we can see from that, that the only thing that changed was the version number. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Twisol
USA (2,257 posts) Bio
|
Date
| Reply #13 on Fri 22 Jan 2010 02:10 AM (UTC) |
Message
| |
Posted by
| Nick Gammon
Australia (23,102 posts) Bio
Forum Administrator |
Date
| Reply #14 on Fri 22 Jan 2010 02:32 AM (UTC) |
Message
| Good idea, announcement page has been changed to reflect that. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
126,769 views.
This is page 1, subject is 3 pages long: 1 2
3
It is now over 60 days since the last post. This thread is closed.
Refresh page
top