<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    I thought that this would be a good time to make a comment about
    version control that is somewhat apart from the nuts and bolts of
    git, RCS, CVS, or whatever.<br>
    <br>
    Should, for some reason, there be litigation that charges there is
    some negligence with respect to software product defects and quality
    the records in the version control system can show that the
    developers do and did show due diligence in the development of the
    software product. i.e. that defects were addressed appropriately. <br>
    <br>
    Though, not personally involved, I have seen a situation where
    change records and logs (on paper) were used in a court proceeding
    stemming from a lawsuit.<br>
    The change records were useful in demonstrating due diligence and
    the the lawsuit was dismissed.<br>
    <br>
    (Yes! I have made this comment to this list before - a few years
    ago. But there may be new names on the list who did not see my
    earlier contribution.) <br>
    <br>
    JohnJ<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 2/15/2018 00:12, John Johnson wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:d2ab0e08-7188-e912-6a9f-f66b0fcacfd2@golden.net">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      I will ask readers to note that I did not use the term: commit in
      the descriptions associated with my diagrams.<br>
      I did use the term "milestones" but these could be widely spaced
      with many commits between the milestones.<br>
      <br>
      Commits could be executed daily, while milestones could be defined
      by an arbitrary date, say monthly, or quarterly, or possibly
      incorporate a level of QA acceptance along with performance
      according to a feature/product criteria set by a product manager.
      Thus the individual commits might not necessarily refer to a
      "version" associated with the milestone.<br>
      <br>
      Referring back to git and the SHA-1 hashes mentioned by Adam, one
      can see these hashes displayed in the output generated by the git
      log command.<br>
      JohnJ
      <p><br>
      </p>
      <br>
      <div class="moz-cite-prefix">On 2/14/2018 21:31, Adam Glauser
        wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAFgBy5_HA=EUw1dvUsJQBjzCOajM_acsuH675PY3DHttMB4vAQ@mail.gmail.com">
        <div dir="ltr">I'm not familiar with RCS, but I've just done a
          little reading. There is an example of branching at the end of
          the "Quick Tour" section[1] in the GNU Docs.
          <div><br>
          </div>
          <div>In Git, the identifiers for each revision of the codebase
            are SHA-1 hashes. So "1.2" might be more something like
            "A94A8FE5CCB19BA61C4C0873D391E987982FBBD3", or "A94A8F " if
            you're feeling frisky[2]. As John suggests, there's no way
            to infer from the SHA-1 of a given commit in branch B that
            it was branched from a particular commit in branch A.</div>
          <div><br>
          </div>
          <div>The SHA-1 clearly isn't particularly useful as a
            mnemonic. Branch names can be used to denote, for example,
            that a particular branch is the 1.3 maintenance branch. As I
            understand it, it would not be very idiomatic to have a
            1.3.1 branch as well, but rather to tag a commit in the 1.3
            maintenance branch as the 1.3.1 release.</div>
          <div>
            <div><br>
            </div>
            <div>[1]<a
                href="http://www.gnu.org/software/rcs/manual/rcs.html#Quick-tour"
                moz-do-not-send="true">http://www.gnu.org/software/rcs/manual/rcs.html#Quick-tour</a><br>
            </div>
          </div>
          <div>[2] IIRC, you can refer to a commit in a given repository
            using the shortest intial substring of the SHA-1 that
            uniquely identifies it.</div>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr">On Wed, Feb 14, 2018 at 8:44 PM John Johnson
            <<a href="mailto:jvj@golden.net" moz-do-not-send="true">jvj@golden.net</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF"> In my UNIX days we
              did not use RCS. The UNIX box was experimental and was not
              used for development.<br>
              However, reaching back in my distant memory the RCS
              version numbers would not have any bearing on branches.<br>
              (Caveat: This might be specific to a particular
              organization.)<br>
              <br>
              Let's refer to the diagram I provided earlier.<br>
              This time we will let A B and C be defined by distinct
              product / part number identifiers.<br>
              And we will let the + signs denote development milestones
              aka versions within each stream.<br>
              The + signs aka versions in one stream do not have
              anything to do with the versions in other streams.<br>
              Baseloads from one stream to the next are taken at a
              development milestone aka version.<br>
              <p><tt><br>
                </tt></p>
              <p><tt>A +-----+-----+-----+-----+......| EOL</tt><tt><br>
                </tt><tt>        |</tt><tt><br>
                </tt><tt>B      
                  +-------+-----+-----+-----+-----+-----+-----+-----+.....|
                  EOL</tt><tt><br>
                </tt><tt>                      |</tt><tt><br>
                </tt><tt>C                    
                  +-------+------+------+------+-----+-----+-----+-----+.....|
                  EOL</tt><tt><br>
                </tt></p>
            </div>
            <div text="#000000" bgcolor="#FFFFFF">
              <p><tt>(use fixed width font for this diagram)<br>
                </tt></p>
              <br>
              JohnJ<br>
              <br>
            </div>
            <div text="#000000" bgcolor="#FFFFFF">
              <div class="m_-2054163075399295683moz-cite-prefix">On
                2/14/2018 16:20, Federer Fanatic wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">I have a query about how one can adapt
                  familiarity of  RCS usage to Git usage. My impression
                  is that version numbers
                  <div>like RCS can be simulated using "branches" in
                    git? I haven't used Git much beyond pulling
                    interesting source code.</div>
                  <div><br>
                  </div>
                  <div>FF</div>
                </div>
                <div class="gmail_extra"><br clear="all">
                  <div>
                    <div class="m_-2054163075399295683gmail_signature"
                      data-smartmail="gmail_signature"><br>
                      <br>
                      <br>
--------------------------------------------------------------<br>
                       Roger Federer Fanatic Extraordinaire :-)</div>
                  </div>
                  <br>
                  <div class="gmail_quote">On Wed, Feb 14, 2018 at 11:06
                    AM, Adam Glauser <span dir="ltr"><<a
                        href="mailto:adamglauser@gmail.com"
                        target="_blank" moz-do-not-send="true">adamglauser@gmail.com</a>></span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">Thanks for sharing this John. For
                        what it's worth, I've been using Git for years
                        now, and I strongly prefer the CLI over any GUI
                        I've used. That being said, I do use GUI tools
                        for certain operations. For example, see `git
                        mergetool`. My preferred tool is KDiff3 (which
                        is available on the other OS as well).
                        <div><br>
                        </div>
                        <div>My approach to your problem is to use
                          environment variables. An advantage of this
                          approach is that you can then refer to those
                          paths in a variety of use cases.</div>
                        <div><br>
                        </div>
                        <div># ~/.profile</div>
                        <div>export P_A_DIR=<span
                            style="color:rgb(33,33,33)">/c/Users/user/projects/project</span><span
                            style="color:rgb(33,33,33)">A</span></div>
                        <div>export P_B_DIR=<span
                            style="color:rgb(33,33,33)">/c/Users/user/projects/projectB</span></div>
                        <div><br>
                        </div>
                        <div>You can then do things like:</div>
                        <div>$ cd $P_A_DIR<span
                            style="color:rgb(33,33,33)"><br>
                          </span></div>
                        <div>$ diff $P_A_DIR/path/to/file
                          $P_B_CODE/path/to/file</div>
                        <div><br>
                        </div>
                        <div>In particular, I find this handy for
                          referring to locations on remote boxes, where
                          I may not be able to use aliases or remote
                          env. vars. easily.</div>
                        <div>$ scp $P_A_DIR/path/to/file
                          user@server:$P_A_TEST/path/to/file</div>
                        <div>   or</div>
                        <div>$ scp $P_A_DIR/path/to/file
                          user@server:$P_A_RELEASE/path/to/file<br>
                        </div>
                        <div><br>
                        </div>
                        <div>Hope this helps,</div>
                        <div>Adam</div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                      </div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr">On Wed, Feb 14, 2018 at 10:36 AM
                          John Johnson <<a
                            href="mailto:jvj@golden.net" target="_blank"
                            moz-do-not-send="true">jvj@golden.net</a>>
                          wrote:<br>
                        </div>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">Update<br>
                          A while ago I was informed about the use of
                          alias command.<br>
                          My Bad: I had forgotten about the alias
                          command, as I used it back when<br>
                          was UNIX sysadm, many eons ago.<br>
                          <br>
                          While my application is not in Linux what I
                          have shown below shows how I<br>
                          am using the alias command with the git
                          command window.<br>
                          The same can apply to Linux.<br>
                          <br>
                          In the other OS, I have placed .bashrc (shown
                          below) in the git home<br>
                          directory /c/Users/user/.<br>
                          I have a number of projects, each with their
                          own development directory<br>
                          and git repository.<br>
                          In the git command window, I use the alias
                          commands shown below to<br>
                          define shortcuts that will put me in the
                          development directory for the<br>
                          current project.<br>
                          <br>
                          # .bashrc<br>
                          # created 20180211<br>
                          alias cdprojectA="cd
                          /c/Users/user/projects/projectA"<br>
                          alias cdprojectB="cd
                          /c/Users/user/projects/projectB"<br>
                          alias cdprojectC="cd
                          /c/Users/user/projects/projectC"<br>
                          # done<br>
                          <br>
                          Next: Study & use the git control files:
                          .gitignore and .ignore.<br>
                          <br>
                          And yes! At this time, I prefer to use git
                          from the command line window.<br>
                          Using the git gui will come later.<br>
                          <br>
                          JohnJ<br>
                          <br>
                          <br>
_______________________________________________<br>
                          kwlug-disc mailing list<br>
                          <a href="mailto:kwlug-disc@kwlug.org"
                            target="_blank" moz-do-not-send="true">kwlug-disc@kwlug.org</a><br>
                          <a
                            href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org"
                            rel="noreferrer" target="_blank"
                            moz-do-not-send="true">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
                        </blockquote>
                      </div>
                      <br>
                      _______________________________________________<br>
                      kwlug-disc mailing list<br>
                      <a href="mailto:kwlug-disc@kwlug.org"
                        target="_blank" moz-do-not-send="true">kwlug-disc@kwlug.org</a><br>
                      <a
                        href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org"
                        rel="noreferrer" target="_blank"
                        moz-do-not-send="true">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
                      <br>
                    </blockquote>
                  </div>
                  <br>
                </div>
                <br>
                <fieldset
                  class="m_-2054163075399295683mimeAttachmentHeader"></fieldset>
                <br>
                <pre>_______________________________________________
kwlug-disc mailing list
<a class="m_-2054163075399295683moz-txt-link-abbreviated" href="mailto:kwlug-disc@kwlug.org" target="_blank" moz-do-not-send="true">kwlug-disc@kwlug.org</a>
<a class="m_-2054163075399295683moz-txt-link-freetext" href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" target="_blank" moz-do-not-send="true">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a>
</pre>
              </blockquote>
              <br>
            </div>
            _______________________________________________<br>
            kwlug-disc mailing list<br>
            <a href="mailto:kwlug-disc@kwlug.org" target="_blank"
              moz-do-not-send="true">kwlug-disc@kwlug.org</a><br>
            <a
              href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org"
              rel="noreferrer" target="_blank" moz-do-not-send="true">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
          </blockquote>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
kwlug-disc mailing list
<a class="moz-txt-link-abbreviated" href="mailto:kwlug-disc@kwlug.org" moz-do-not-send="true">kwlug-disc@kwlug.org</a>
<a class="moz-txt-link-freetext" href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" moz-do-not-send="true">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a>
</pre>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
kwlug-disc mailing list
<a class="moz-txt-link-abbreviated" href="mailto:kwlug-disc@kwlug.org">kwlug-disc@kwlug.org</a>
<a class="moz-txt-link-freetext" href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>