<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scm on Software Factory</title><link>/tags/scm/</link><description>Recent content in Scm on Software Factory</description><generator>Hugo</generator><language>en</language><atom:link href="/tags/scm/index.xml" rel="self" type="application/rss+xml"/><item><title>Source Code Management</title><link>/use/practices/code/scm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/use/practices/code/scm/</guid><description>&lt;p&gt;Source Code Management (SCM) is a set of practices for tracking and managing changes to code,
enabling teams to collaborate effectively and maintain a clear project history.&lt;/p&gt;
&lt;p&gt;This guide provides an overview of SCM best practices, helping your team maintain a clear project history,
collaborate effectively, and deliver high-quality code.&lt;/p&gt;
&lt;p&gt;From branching strategies and commit conventions to merge types and tagging,
these practices will ensure cohesive teamwork and a well-organized codebase.&lt;/p&gt;</description></item><item><title>Branching</title><link>/use/practices/code/scm/branch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/use/practices/code/scm/branch/</guid><description>&lt;p&gt;&lt;img src="../img/git-branch-logo.png" alt="“Branching”"&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A branch is a diverging point in the codebase that allows for parallel development.
It enables developers to work on different features, fixes, or updates independently
of the main code line, known as the main branch.&lt;/p&gt;
&lt;p&gt;Branching is a fundamental concept in Source Code Management (SCM) systems.
In the Software Factory, we use &lt;strong&gt;Git&lt;/strong&gt; as our SCM tool,
which provides powerful and lightweight branching capabilities.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To gain a deeper understanding of Git&amp;rsquo;s branching model, please read &lt;a href="https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#ch03-git-branching" class="external-link" target="_blank" rel="noopener noreferrer"&gt;Git Branching in a Nutshell&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Committing</title><link>/use/practices/code/scm/commit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/use/practices/code/scm/commit/</guid><description>&lt;p&gt;&lt;a href="https://xkcd.com/1296/" class="external-link" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="../img/xkcd.png" alt="“Committing”"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A commit is a snapshot of changes made to the files in your repository.
Commits are more than just snapshots — they tell the story of your project.
A clear and well-structured commit history helps others (and future you) understand
what changed, when, and why.
It simplifies debugging, eases code reviews, and makes collaboration more effective.&lt;/p&gt;
&lt;p&gt;In the Software Factory, we use &lt;strong&gt;Git&lt;/strong&gt; as our SCM tool.
The practices described here apply to any SCM system,
while Git-specific features are highlighted where relevant.&lt;/p&gt;</description></item><item><title>Merging</title><link>/use/practices/code/scm/merge/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/use/practices/code/scm/merge/</guid><description>&lt;p&gt;&lt;img src="../img/git-merge-logo.png" alt="Merge logo"&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Merging is the process of combining changes from different branches into a single branch.
It is a fundamental operation in any SCM workflow, allowing teams to integrate work from multiple developers.
Selecting the right merge approach is crucial for maintaining a clean and understandable project history.&lt;/p&gt;
&lt;p&gt;In the Software Factory, we use &lt;strong&gt;Git&lt;/strong&gt; for source code management.
The examples below show Git commands, but the concepts apply to any modern SCM system.&lt;/p&gt;</description></item><item><title>Tagging</title><link>/use/practices/code/scm/tag/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/use/practices/code/scm/tag/</guid><description>&lt;p&gt;&lt;img src="../img/git-tag-logo.png" alt="tag logo"&gt;&lt;/p&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Tagging is a crucial practice in software development to mark important points in the project history,
such as versions, releases, or milestones.
Tags provide a way to capture a snapshot of your codebase at a specific moment,
making it easy to reference and retrieve that exact state later.&lt;/p&gt;
&lt;p&gt;In the Software Factory, we use &lt;strong&gt;Git&lt;/strong&gt; for source code management.
Git tags are references that point to specific commits, helping to mark significant points
in your project&amp;rsquo;s history.&lt;/p&gt;</description></item></channel></rss>