From 413e9d6a56f6ff0f41d8b1f3e65cd5c9f7573c6e Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Mon, 24 Aug 2009 19:39:37 +0000 Subject: [PATCH] Update developers doc --- docs/images/git-edit-commit.dia | Bin 0 -> 2718 bytes docs/images/git-edit-commit.eps | 11786 +++++++++++++++++ docs/images/git-edit-commit.png | Bin 0 -> 8692 bytes docs/manuals/en/developers/developers.kilepr | 4 +- docs/manuals/en/developers/generaldevel.tex | 97 +- 5 files changed, 11875 insertions(+), 12 deletions(-) create mode 100644 docs/images/git-edit-commit.dia create mode 100644 docs/images/git-edit-commit.eps create mode 100644 docs/images/git-edit-commit.png diff --git a/docs/images/git-edit-commit.dia b/docs/images/git-edit-commit.dia new file mode 100644 index 0000000000000000000000000000000000000000..5633a2005d9d771a164679f74c3d0b8303b48c9a GIT binary patch literal 2718 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 Tw<5tO8PHuN&D$Rp%|iYcW2Mpd literal 0 HcmV?d00001 diff --git a/docs/manuals/en/developers/developers.kilepr b/docs/manuals/en/developers/developers.kilepr index 0f0a87f3..893ce4ac 100644 --- a/docs/manuals/en/developers/developers.kilepr +++ b/docs/manuals/en/developers/developers.kilepr @@ -80,10 +80,10 @@ order=-1 [item:generaldevel.tex] archive=true -column=0 +column=75 encoding= highlight=LaTeX -line=603 +line=553 open=true order=2 diff --git a/docs/manuals/en/developers/generaldevel.tex b/docs/manuals/en/developers/generaldevel.tex index 74a8a2a4..fbda0a1c 100644 --- a/docs/manuals/en/developers/generaldevel.tex +++ b/docs/manuals/en/developers/generaldevel.tex @@ -419,7 +419,7 @@ Please note that if you are familiar with SVN, GIT is similar, can lead to damaging the history of the repository (repo) if you attempt to force pushing data into the GIT repo. -The GIT repo contains the subdirectories {\bf bacula}, {\bf gui}, +The Bacula GIT repo contains the subdirectories {\bf bacula}, {\bf gui}, and {\bf regress}. With GIT it is not possible to pull only a single directory, because of the hash code nature of git, you must take all or nothing. @@ -462,7 +462,7 @@ The above command needs to be done only once. Thereafter, you can: \begin{verbatim} cd trunk -git pull origin +git pull \end{verbatim} As of August 2009, the size of the repository ({\bf trunk} in the above @@ -475,6 +475,83 @@ testing, the directory could become several hundred megabytes. If you want to learn more about GIT, we recommend that you visit:\\ \elink{http://book.git-scm.com/}{http://book.git-scm.com/}. +Some of the differences between GIT and SVN are: +\begin{itemize} +\item Your main git directory is a full git repository to which you can + and must commit. +\item The git database is kept in the directory {\bf .git} at the + top level of the directory. +\item all the important git configuration information is kept in the + file {\bf .git/config} in ASCII format that is easy to manually edit. +\item When you do a {\bf commit} the changes are put in {\bf .git} + rather than in the external repository. +\item You can upload your changes to the external repository using + the command {\bf git push}. +\item You can download all the current changes in the external repository + and merge them into your {\bf master} branch using the command + {\bf git pull}. +\item The command {\bf git add} is used to add a new file to the + repository AND to tell git that you want a file that has changed + to be in the next commit. This has lots of advantages, because + a {\bf git commit} only commits those files that have been + explicitly added. +\item You can add and commit all files modifed in one command + using {\bf git commit -a}. +\item This extra use of {\bf add} allows you to make a number + of changes then add only a few of the files and commit them, + then add more files and commit them until you have committed + everything. This has the advantage of allowing you to more + easily group small changes and commit them. +\item If you {\bf git pull} from the main repository and make + some changes, and before you do a {\bf git push}, someone + else pushes changes to the git repository, you will probably + get an error message such as: + +\begin{verbatim} + git push + To git@github.com:bacula/bacula.git + ! [rejected] master -> master (non-fast forward) + error: failed to push some refs to 'git@github.com:bacula/bacula.git' +\end{verbatim} + + which is git's way of telling you that the main repository has changed + and that if you push your changes, they will not be integrated properly. + As we have noted, you should never ask git to force the push. + See below for an explanation of why. +\item To integrate (merge) your changes properly, you should always do + a {\bf git pull} just prior to doing a {\bf git push}. +\item If git is unable to merge your changes or finds a conflict it + will tell you and you must do conflict resolution, which is much + easier in git than in SVN. +\item Resolving conflicts is described below in the {\bf github} section. +\end{itemize} + +If you want to understand why it is not a good idea to force a +push to the repository, look at the following picture: + +\includegraphics[width=0.85\textwidth]{\idir git-edit-commit.eps} + +The above graphic has three lines of circles. Each circle represents +a commit, and time runs from the left to the right. The top line +shows the repository just before you are going to do a push. Note the +point at which you pulled is the circle on the left, your changes are +represented by the circle labeled {\bf Your mods}. It is shown below +to indicate that the changes are only in your local repository. Finally, +there are pushes A and B that came after the time at which you pulled. + +If you were to force your changes into the repository, Git would place them +immediately after the point at which you pulled them, so they would +go before the pushes A and B. However, doing so would rewrite the history +of the repository and make it very difficult for other users to synchronize +since they would have to somehow wedge their changes at some point before the +current HEAD of the repository. This situation is shown by the second line of +pushes. + +What you really want to do is to put your changes after Push B (the current HEAD). +This is shown in the third line of pushes. The best way to accomplish this is to +work in a branch, pull the repository so you have your master equal to HEAD (in first +line), then to rebase your branch on the current master and then commit it. The +exact commands to accomplish this are shown in the next couple of sections. \subsection{Publishing your changes} \index{Publishing} @@ -497,20 +574,20 @@ Bacula Source Forge GIT repository. \subsection{Github} \index{github} -If you are going to submit before cloning the Bacula Github database, you must create a login on +If you are going to submit code, you create a login on the Github website:\\ \elink{http://github.com/}{http://github.com/}\\ -You must also upload your public ssh key. Please see the instructions -at the above link. Then you notify one of the senior Bacula developers, -who will add your Github user name to the Bacula repository. Finally, +before you clone the repository. +You must also upload your public ssh key. Please see the instructions for +doing so at the above link. Then you notify one of the senior Bacula developers, +who will authorize your Github user name as a committer to the Bacula repository. Finally, you clone the Bacula repository with: \begin{verbatim} - git clone git@github.com:/bacula.git + git clone git@github.com:bacula/bacula.git \end{verbatim} -where you replace \verb++ with the User Name that you created -when you created your Github login, and you replace \verb++ with the name +where you replace \verb++ with the name of a directory that you want git to create to hold your local Bacula git repository. @@ -531,7 +608,7 @@ git commit -m "" ... \end{verbatim} -Note, we request you to create the branch name with your github +Note, we request you to create the branch name ({\bf \verb++/newbranch} with your github login name. This guarantees that the branch name will be unique and easily identified as well. -- 2.39.5