[Xastir] Online Map Enhancements
Tom Russo
russo at bogodyn.org
Sat Nov 24 08:16:20 PST 2018
I was sure I'd written all this up before, and I had.
It can be found (possibly in a more coherent form) in the CONTRIBUTING.md
file of an Xastir clone, or at
https://github.com/Xastir/Xastir/blob/master/CONTRIBUTING.md
On Fri, Nov 23, 2018 at 09:54:04PM -0700, we recorded a bogon-computron collision of the <russo at bogodyn.org> flavor, containing:
> On Fri, Nov 23, 2018 at 09:24:14PM -0600, we recorded a bogon-computron collision of the <lee.bengston at gmail.com> flavor, containing:
> > >
> > > I looked at the Wiki article on how developers should use Git, but I guess
> > > my brain is to tired for that to fully soak in, so for now I'm sharing the
> > > modified source files via a web link.
> > >
> >
> > By the way I didn't mean to imply above that I now consider myself to be a
> > developer :-)
>
> At the moment, only Curt and I have permission to write to the main Xastir
> repo, and both of us are swamped (as you might have noticed from our relative
> silence these days). So downloading a new tarball of source code and picking
> out the changes is pretty much not something either of us will do. The only
> real process we have these days is pull requests, so if you wanna share your
> work and get it into Xastir, you pretty much have to go that route.
>
> I just reviewed the "Notes:Git" file, and it isn't really that helpful for
> suggesting how a member of the community should share their code via Git.
> I'll try to summarize. I am not good at summarizing, so this is long.
>
> The best way to do it is to create a "fork" of Xastir on GitHub. There's
> a ton of information on Github about that here:
> https://help.github.com/articles/working-with-forks/
> Note that some of this documentation assumes that your fork is the one
> you cloned (so it is called "origin") and the main repo from which you
> forked has been defined as an alternate remote ("upstream") but my thumbnail
> sketch is the other way around, because you already have Xastir's repo
> cloned and set as the "origin" remote.
>
> A thumbnail sketch is:
> - Make sure your clone is up to date:
> git fetch origin
> git merge master
>
> - Create a github account if you don't already have one.
>
> - Back inside your existing git clone,
> Make sure to configure git so your commits have your name and email
> address associated with them:
>
> git config --global user.name "Lee Bengston"
> git config --global user.email <your email address>
>
> Make sure you use the same email address that you used
> to set up your Github account.
>
> - Now create a fork on github through github's web interface
> using the "fork" button at the top right corner of the Xastir project page
> at https://github.com/Xastir/Xastir
>
> A "fork" is nothing more than a git clone that lives on Github instead
> of your machine, but is owned by you and you can do anything you want
> to it, including pushing changes from your local git repo on your
> own machine.
>
>
> - Associate your fork with a "remote" in your git clone directory:
> git remote add <remote name> <remote URL>
> "remote name" is something you'll use to refer to this alternate
> Github fork. "remote url" is the URL to your Github fork. So, for example
> git remote add myfork https://github.com/<your github user name>/Xastir.git
>
> If you do "git remote -v" you should now see four lines, two saying there's
> the default "origin" remote, and two with your new one called "myfork".
>
> You can now pull code from "origin" to keep current with Xastir's
> development as usual. But having the other remote defined means
> you can also mess around with your fork without having two
> different directories to work in.
>
> - Now check the current status of your clone directory:
> git status
> It should show that you've got a few code changes, and you should make sure
> that only the changes you *want* are there. It will probably also
> show that you're on the "master" branch.
>
> Use
> git diff
> and look over the differences, and make sure that everything that is
> different between your working directory and the repo's previous
> state are changes you really wanted to share.
>
> - Create a new branch to hold the changes you want to share, and switch
> to it.
> git checkout -b myspecialnewhack
> The "checkout" command switches which branch you're on, and the
> "-b" flag means "create the branch before switching."
>
> - Once again, check your status:
> git status
> It should show that you're on the "myspecialnewhack" branch, and that
> all the changes you made are still "Changes not staged for commit".
>
> - Stage your changes for commit
> git add .
> This is slightly dangerous, as it stages *ALL* changes present in your
> directory for commit. This is why I said "make sure that only the changes
> you *want* are there." You can be more precise if you want, and
> individually stage each file that you actually want to commit, if there
> are some differences you DON'T want to share.
> git add <file1> <file2> ... <etc.>
>
> - Now actually commit the things you staged:
> git commit
> This should fire up an editor and let you type in a commit message.
> Write an informative one. Use the following format:
> First line should be written in the imperative, and about 50 characters
> Leave a blank line.
> Explain what your commit does. Wrap your lines around 72 chars.
> Do not rely on your editor to wrap lines for you.
>
> Example:
> =======
> Add new online map options
>
> This commit modifies the online map URL generating code to support
> tile servers that reverse the X and Y of tile locations, and also
> adds several .geo files for interesting tile servers.
> =======
>
> Save the commit message using your editor's file save command, and
> exit the editor. Your commit will now be saved in your local git
> repo.
>
> - Check that it's good:
> git log
> should show that you added a new commit.
> git log -p
> should show that you added a commit, and what changes that commit made.
> git log --all --decorate --oneline --graph
> should show you a graphical representation of the git history, with
> labeled branches and only the first line of the commit message for each
> commit in the history (this is why you leave the blank line, and why
> you should stick to 50 chars).
>
> In that graph display, you should see that your new commit should show
> a decoration that has "HEAD->myspecialnewhack" in it, indicating that
> your change happened on your branch and not on master.
>
> You should also see that "master" and "origin/master" are decorating
> a commit *prior* to your change.
>
> IF ANYTHING DOESN'T LOOK RIGHT HERE, DON'T GO TO THE NEXT STEP! There
> *ARE* ways to fix things using "commit --amend" , "reset" and so forth, but
> not after you've pushed code.
>
> - Now that you're sure that your new branch is the way you want the world
> to see it, push your new branch up to YOUR remote:
> git push myfork myspecialnewhack
> where "myfork" is what you used when you did the "git remote add"
> command. You will be prompted for your github user ID and password here.
>
> This will push the contents of "myspecialnewhack" branch up to your
> fork, where anyone who wants to can either download that branch, or
> fork your fork and hack on it further.
>
> - Once you've pushed, try redoing this command:
> git log --all --decorate --oneline --graph
> You should see now that not only is your new commit on the
> "myspecialnewhack" branch, but also on "myfork/myspecialnewhack".
>
> Now your fork differs from the main Xastir repo, because it has a new branch
> with your fancy new changes. Now go to Github and open a pull request
> Here's the real documentation, which you should actually read:
> https://help.github.com/articles/creating-a-pull-request-from-a-fork/
>
> and here's a possibly inadequate thumbnail sketch of the process.
> - Go log in to github.com, and navigate to your Xastir fork.
> - Click the "New pull request" button next to the "Branch" pull-down.
> - Fill in the form, selecting what branch of your repo you're suggesting
> we pull from, and which branch to pull it into (in this case, master).
> - ?
> - Profit.
>
> Sometime before the heat death of the universe, maybe we'll get to look over
> the changes and merge them into Xastir if they're safe.
>
> If ever you want to return to the unmodified code from the main repo, just
> switch back to the master branch:
> git checkout master
> This is safe, because your new changes have been carefully saved on the
> "myspecialnewhack" branch, and you can return to them any time with:
> git checkout myspecialnewhack
>
> Pile of cake, n'est pas?
>
> --
> Tom Russo KM5VY
> Tijeras, NM
>
> echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
>
> _______________________________________________
> Xastir mailing list
> Xastir at lists.xastir.org
> http://xastir.org/mailman/listinfo/xastir
--
Tom Russo KM5VY
Tijeras, NM
echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
More information about the Xastir
mailing list