On 2015-06-25 09:04, Michael Schnell wrote: > I suppose I now can just do "git pull" to receive any updates that the > Lazarus svn might provide ?
Close. My Lazarus mirror doesn't have an 'activenogui' branch, so doing a pull will not fetch anything. To update your repository with the latest SVN Trunk changes, you need to [alternatives exist, but this is easiest to explain] switch to the 'upstream' branch, then to a 'git pull'. My apologies, your 'activenogui' branch should have been created from 'upstream', not 'origin/upstream'. The difference being, you don't want 'activenogui' to be a tracking branch (see docs for an explanation). To fix this, simply run the following command: $ git branch --unset-upstream activenogui This means you can now fetch the latest Trunk changes, and it will not affect your 'activenogui' branch - no automatic merges/updates will occur. This is what you want. It is best to manually update your branch with the latest Trunk changes, at a time that suites you best. Now, to update your 'upstream' branch with the latest Trunk changes: // currently in 'activenogui' branch $ git stash // to safe-keep any local uncommitted changes $ git checkout upstream $ git pull $ git checkout activenogui $ git stash pop // restore your local uncommitted changes You can now review the new changes in 'upstream' and periodically (eg: once a week) bring your 'activenogui' up to date with the latest Trunk changes by simply merging 'upstream' into 'activenogui' // while in 'activenogui' branch $ git merge upstream TIP: Never make any commits in the 'upstream' branch! Always make commits in local branches, even if it is simply a one commit bug fix you want to share with the Lazarus team. This will save you from lots of frustration, and eliminate pull conflicts. > I suppose I can do "git push" to provide my own code ? I'm assuming you are using Github, and I assume you have your own github account. Now if you haven't yet, create a new "Lazarus" repository via the Github web interface. DO NOT let Github initialize the the repository. Once Github has created the repository, it will show you the exact commands and URL information you need to use to link to it. When Github's instructions refer to 'origin', replace that with the name 'github'. What you will end up with is the following. * Your lazarus repository on your computer will point to two remote repositories. - 'origin' which points to my Lazarus mirror. Used for getting the latest SVN Trunk changes. - 'github' which points to your Lazarus repository in your Github account. This is the one you have read/write access to. * When you are ready to share any code, you push to the 'github' repository. // in 'activenogui' and ready to share changes with the world $ git push github activenogui I believe the last parameter is optional, once you have used it at least once. TIP: I never use the name 'origin' to refer to remote repositories. I find it not informative enough. It is just a name after all, and you can rename it whenever you want. I use more descriptive names, so I know exactly where I am pushing or pulling from (eg: 'github', 'sourceforge' etc). So in your case I might rename the remote repository named 'origin' to be 'graemeg'. So when you do a 'git pull graemeg' you know exactly which repository you referring too, and there is no confusion where the data is coming from. I think all this information is already in the Lazarus Wiki under the Git Mirror page. If not, it might be worth adding. Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus