<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/devops/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Thu, 16 Jul 2026 15:44:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>DevOps Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Rockwell PLC DevOps: Modernizing Version Control</title>
		<link>https://static.dmcinfo.com/blog/43290/modern-devops-rockwell-plc-development/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Allen Bradley PLC]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/?p=43290</guid>

					<description><![CDATA[<p>As PLC and industrial automation systems continue to scale, projects are growing larger and more complex. Increasing demands for automation, quality, and advanced features require greater oversight and automated testing of control code well before it reaches the factory floor. To address this, DMC applies modern version control, continuous integration, and continuous deployment practices widely [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/43290/modern-devops-rockwell-plc-development/">Rockwell PLC DevOps: Modernizing Version Control</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/" type="page" id="441">PLC</a> and <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" type="page" id="420">industrial automation systems</a> continue to scale, projects are growing larger and more complex. Increasing demands for automation, quality, and advanced features require greater oversight and automated testing of control code well before it reaches the factory floor.</p>



<p class="wp-block-paragraph">To address this, DMC applies modern version control, continuous integration, and continuous deployment practices widely used in traditional software development. These processes, and the software that enables these processes, seek to lower the barrier between development (Dev) and operations (Ops). This blog will review how to apply the foundational DevOps principle of version control to Rockwell PLCs.</p>



<h2 id="h-version-control-and-git" class="wp-block-heading">Version Control and Git</h2>



<p class="wp-block-paragraph">Version control systems (VCS) are essential for applying modern DevOps practices to Rockwell PLC development. These systems help create a standardized and reliable way for teams to collaboratively develop, manage, and test code efficiently.</p>



<p class="wp-block-paragraph">Git, which is a distributed version control system (DVCS) originally created by Linus Torvalds, enables effective collaboration among developers through useful features such as branching and merging. Some of the key concepts to understand in Git include the following:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0e47273b wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:60%">
<h3 id="h-local-remote-repository" class="wp-block-heading">Local/Remote Repository</h3>



<p class="wp-block-paragraph">A full copy of the entire code base is synchronized to a developer&#8217;s local repository. This means that each developer has their own complete version of the project on their computer. Developers can then synchronize their code changes with others by pushing their updates to the remote repository and pulling changes from it into their local repository. This process allows multiple developers to collaborate effectively by keeping their work up to date and integrated with the team&#8217;s overall progress.</p>



<h3 id="h-non-linear-development" class="wp-block-heading">Non-Linear Development</h3>
</div>



<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:40%">
<figure class="wp-block-image aligncenter size-full is-resized has-custom-border"><img fetchpriority="high" decoding="async" width="316" height="245" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-1.jpg" alt="Distributed version control system architecture" class="wp-image-43319" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.289874209465564;object-fit:cover;width:357px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-1.jpg 316w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-1-300x233.jpg 300w" sizes="(max-width: 316px) 100vw, 316px" /></figure>
</div>
</div>



<p class="wp-block-paragraph">Multiple developers can work on different features simultaneously without interfering with each other. Git facilitates this by allowing branching, merging, and pulling code changes. It also has built-in data integrity mechanisms that help prevent lost changes and keep the history consistent</p>



<p class="wp-block-paragraph">The main branch of code is called “main” or, in legacy systems, “master”. This branch should generally be the head of development and is the only branch present when first starting a project.</p>



<p class="wp-block-paragraph" style="padding-bottom:0">Other branches of development branch off from main, usually with a focus on implementing a specific feature or fixing a specific bug. After this code is completed, it is merged back into main (which can be configured to require appropriate permissions), and then usually either deleted or compressed into a single commit.</p>



<figure class="wp-block-image aligncenter size-full is-resized" style="margin-bottom:var(--wp--preset--spacing--70)"><img decoding="async" width="925" height="388" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-2.jpg" alt="Example Git diagram" class="wp-image-43320" style="aspect-ratio:2.3841234258587725;width:935px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-2.jpg 925w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-2-300x126.jpg 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-2-768x322.jpg 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<h3 id="h-local-repository-command" class="wp-block-heading">Local Repository Command</h3>



<p class="wp-block-paragraph">These core Git commands interact directly with your PC&#8217;s local repository. It is important to note that these commands do not affect the remote repository, which requires a different set of commands that will be covered next.</p>



<ul class="wp-block-list">
<li><strong>Branch:</strong> This command allows you to create a copy of an existing branch, usually the main branch, so you can work on new features separately without affecting the main codebase.
<ul class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--40)">This command stages your changes, preparing them for commit to the active branch. It essentially tells Git which changes you want to include in the next commit.</li>
</ul>
</li>



<li style="padding-bottom:var(--wp--preset--spacing--40)"><strong>Commit:</strong> This command saves the staged changes to the active branch, creating a new snapshot of your project at that point in time.</li>



<li style="padding-bottom:var(--wp--preset--spacing--30)"><strong>Merge:</strong> This command combines two branches into a single branch, allowing you to integrate changes from different lines of development.</li>
</ul>



<p class="wp-block-paragraph">The following additional commands are also commonly used as part of the normal git workflow. These commands are typically utilized by more experienced developers who are comfortable with advanced git operations and want to manage their code more effectively.</p>



<ul class="wp-block-list">
<li style="padding-bottom:var(--wp--preset--spacing--40)"><strong>Stash</strong>: This command allows you to temporarily save the changes you have made to your modified files in your current working branch without committing them. This is useful when you want to switch contexts or branches but are not yet ready to commit your work.</li>



<li style="padding-bottom:var(--wp--preset--spacing--40)"><strong>Switch</strong>: This command is used to move between different active branches of development within your repository. It enables you to quickly and efficiently switch your working branch, making it possible to work across features or fixes.</li>



<li><strong>Diff</strong>: This command compares two different branches and highlights the differences between the files contained in each. It is particularly useful for reviewing changes, understanding what has been modified, and preparing for merges or code reviews.</li>
</ul>



<h3 id="h-remote-repository-commands" class="wp-block-heading">Remote Repository Commands</h3>



<p class="wp-block-paragraph">These commands and concepts are commonly used to facilitate interaction between the local repository on your personal computer and a remote repository hosted on a server. They help synchronize and manage changes efficiently across different environments:</p>



<ul class="wp-block-list">
<li><strong>Fetch:</strong> This command downloads commits, branches, and tags from a remote repository into your local repository. It allows you to see changes made by others without merging them into your working branch immediately.</li>



<li><strong>Pull: </strong>This command fetches changes from the remote branch and then merges those changes directly into your current working branch. It is a convenient way to update your local branch to the latest remote changes in a single step.</li>



<li><strong>Push:</strong> This command sends your committed changes from the local working branch to the designated remote branch. It is used to share your updates with others and keep the remote repository up to date with your work.</li>
</ul>



<h3 id="h-merging" class="wp-block-heading">Merging</h3>



<p class="wp-block-paragraph">When developing, code differences and conflicts can arise when multiple developers work on the same file across different branches. When this occurs during a merge, it is called a merge conflict and must be resolved.</p>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--40)">This is easily handled in traditional text-based programming environments using standard compare-and-merge tools like VSCode (free), which includes functionality for merging text files.</p>



<figure class="wp-block-table is-style-regular" style="padding-bottom:var(--wp--preset--spacing--50)"><table class="has-custom-white-background-color has-background" style="border-width:1px"><thead><tr><th class="has-text-align-center" data-align="center">Step</th><th>Description</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">1</td><td>Configure the default merge tool, usually at the global level. This only needs to be done once.<br><code><em>git config --global diff.tool vscode</em><br><em>git config --global mergetool.vscode.cmd 'code --wait --merge $REMOTE $LOCAL $BASE $MERGED'</em></code></td></tr><tr><td class="has-text-align-center" data-align="center">2</td><td>Call the mergetool with the named tool command vscode when a merge conflict occurs during a push/pull (or manual merge).<br><em><code>git mergetool -t vscode</code></em></td></tr><tr><td class="has-text-align-center" data-align="center">3</td><td>Git will automatically create temporary LOCAL, REMOTE, and BASE files based off of the branches that are being compared. It will then call VSCode with the command-line arguments specified in the configuration above.</td></tr><tr><td class="has-text-align-center" data-align="center">4</td><td>VSCode will open and highlight the differences and allow the developer to pick which changes to keep.</td></tr><tr><td class="has-text-align-center" data-align="center">5</td><td>Once merging is complete, the developer will commit their changes to the local branch and push these changes back to the remote repository.</td></tr></tbody></table></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-0e47273b wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:60%">
<p class="wp-block-paragraph" style="padding-right:var(--wp--preset--spacing--50)">The following example shows a basic Python merge in VS Code. In this example, we had a main branch that was split off into another development branch, foo, which had its own function and function call added. During that time, the bar function and function call were added to our main branch. Because both branches modified the same file, a merge conflict was created. To resolve this conflict, we called <code>git mergetool -t vscode</code><em> </em>to bring up the VS Code merge functionality. Git automatically understood what files to merge and what program to call because we configured the VS Code merge tool earlier.</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="padding-top:var(--wp--preset--spacing--30);flex-basis:33.33%">
<figure class="wp-block-image aligncenter size-full has-custom-border" style="margin-left:0"><img decoding="async" width="925" height="484" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-3.jpg" alt="Diagram of main branch off of development branch &quot;foo&quot;" class="wp-image-43322" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.9063829787234043;object-fit:cover" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-3.jpg 925w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-3-300x157.jpg 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-3-768x402.jpg 768w" sizes="(max-width: 925px) 100vw, 925px" /><figcaption class="wp-element-caption">Text-based compare</figcaption></figure>
</div>
</div>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">The image of VS Code shows both branches (left/right) being merged, as well as the final merge result at the bottom of the screen. It is important to note that the developer could have chosen to merge the calls to the foo/bar functions without actually merging the function definitions. This makes this tool very powerful, but not error-proof.</p>



<figure class="wp-block-image aligncenter size-full" style="margin-bottom:var(--wp--preset--spacing--60)"><img decoding="async" width="925" height="470" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-4.jpg" alt="VS code merge" class="wp-image-43334" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-4.jpg 925w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-4-300x152.jpg 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-4-768x390.jpg 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">For programs that are not text-based or are overly complicated to merge by hand, additional merge tools can be configured to simplify these conflicts.</p>



<h2 id="h-git-and-logix-designer-compare-tool" class="wp-block-heading">Git and Logix Designer Compare Tool</h2>



<p class="wp-block-paragraph">As part of their standard product offering, Rockwell provides the Logix Designer Compare Tool to allow visual merging of Rockwell PLC code and to identify differences between PLC code. See the full <a href="https://literature.rockwellautomation.com/idc/groups/literature/documents/um/ldct-um001_-en-e.pdf">Getting Results Guide</a> from Rockwell.</p>



<p class="wp-block-paragraph">This application not only offers a GUI for starting compare/merge operations, but also provides a full command-line interface to run them automatically. Based on our previous example with VS Code, the Logix Designer Compare Tool can be configured as a full git merge tool using the following commands. The path to the application can vary depending on where the tool is installed, which is accounted for by the additional path command.</p>



<p class="wp-block-paragraph"><code>git config --global merge.tool rockwell_merge</code></p>



<p class="wp-block-paragraph"><code>git config --global mergetool.rockwell_merge.path 'C:\Program Files (x86)\Rockwell Software\\'</code></p>



<p class="wp-block-paragraph"><code>git config --global mergetool.rockwell_merge.cmd 'RSLCompare.exe -m \$LOCAL \$REMOTE \$BASE'</code></p>



<p class="wp-block-paragraph">After configuring the Rockwell merge tool, the development workflow operates exactly the same as if developing with a text-based language like Python, i.e., using standard commit, branch, merge, and push/pull commands.</p>



<p class="wp-block-paragraph">Repeating the <em>foo</em> and <em>bar</em> example from earlier with Rockwell, I created a Studio 5000 ACD project with a single program/rung. From there, I created two branches of development:</p>



<ul class="wp-block-list">
<li><strong>Foo</strong> &#8211; JSR to a new Foo routine, with basic logic</li>



<li><strong>Bar</strong> &#8211; JSR to the new Bar routine, with basic logic</li>
</ul>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--50)">When merging these branches, I encountered a merge conflict because the ACD file in both branches had been modified. I can resolve this by calling <code>git mergetool -t rockwell_merge</code>. This will tell git to take the file from both branches, as well as the base file they both originated from, and perform a three-way merge. The left content is the local branches, the right content is the remote branch, and the center content is the base branch that the local/remote branches diverged from. The following images show how this merge works:</p>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="2554" height="1297" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5.png" alt="Controller view with top-level project changes." class="wp-image-43547" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;aspect-ratio:1.9692054597331825;width:1154px;height:auto" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5.png 2554w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5-300x152.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5-1024x520.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5-768x390.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5-1536x780.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-5-2048x1040.png 2048w" sizes="(max-width: 2554px) 100vw, 2554px" /><figcaption class="wp-element-caption"><em>The controller view shows all top-level changes to a project.</em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="2548" height="1185" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6.png" alt="Program folder with merge conflicts." class="wp-image-43548" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1154px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6.png 2548w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6-300x140.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6-1024x476.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6-768x357.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6-1536x714.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-6-2048x952.png 2048w" sizes="(max-width: 2548px) 100vw, 2548px" /><figcaption class="wp-element-caption"><em>The program folder shows which programs have merge conflicts.</em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="2560" height="1300" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7.png" alt="Program folders with import parameters." class="wp-image-43549" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1154px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7.png 2560w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7-300x152.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7-1024x520.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7-768x390.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7-1536x780.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-7-2048x1040.png 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /><figcaption class="wp-element-caption"><em>When viewing a specific program, we can see the differences in the tags, as well as differences in the programs. Differences can include modifications or completely new additions. We will leave the checkmarks on the <code>Foo</code> and <code>Bar</code> routines, to import them as is to the resulting</em> <em><code>Main Program</code></em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border is-style-default" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="2553" height="1192" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8.png" alt="Folder tags with defined scope tags." class="wp-image-43550" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1154px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8.png 2553w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8-300x140.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8-1024x478.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8-768x359.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8-1536x717.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-8-2048x956.png 2048w" sizes="(max-width: 2553px) 100vw, 2553px" /><figcaption class="wp-element-caption"><em>The tags folder shows that each new branch has defined new program scope tags, which we want to import as is.</em></figcaption></figure>



<figure class="wp-block-image aligncenter size-full is-resized has-custom-border" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--50)"><img decoding="async" width="2559" height="1293" src="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9.png" alt="" class="wp-image-43551" style="border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;width:1154px" srcset="https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9.png 2559w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9-300x152.png 300w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9-1024x517.png 1024w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9-768x388.png 768w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9-1536x776.png 1536w, https://static.dmcinfo.com/wp-content/uploads/2026/04/rockwell-devops-version-controls-plcs-image-9-2048x1035.png 2048w" sizes="(max-width: 2559px) 100vw, 2559px" /><figcaption class="wp-element-caption"><em>We can select how to merge in individual lines of ladder logic across the local, remote, and base branches. Because these are just code additions, we will leave the already selected values.</em></figcaption></figure>



<p class="wp-block-paragraph" style="padding-bottom:var(--wp--preset--spacing--30)">After selecting all of our changes, we will select File → Save As&#8230; to save the resulting ACD file over our existing ACD file in our local repository. After we close the merge application, we can commit the merge result and push to our remote repository. Once this change is in the remote repository, other developers can use the same method to synchronize their code changes, enabling accelerated system development and programming.</p>



<h2 id="h-next-steps-in-devops" class="wp-block-heading">Next Steps in DevOps</h2>



<p class="wp-block-paragraph">This tutorial introduced the basic concepts of Git, how to configure merge tools, and how to leverage them for Rockwell-based PLC development. Over the next few blogs in this series, we will review how to leverage Git and GitLab for continuous integration and continuous deployment (CI/CD).</p>



<p class="wp-block-paragraph">In the meantime, you can work on refining your git skills and workflow with the following free resources:</p>



<ul style="padding-bottom:var(--wp--preset--spacing--40)" class="wp-block-list">
<li><a href="https://git-scm.com/learn">Git &#8211; Learn</a></li>



<li><a href="https://docs.github.com/en/get-started/start-your-journey/git-and-github-learning-resources">Git and GitHub learning resources &#8211; GitHub Docs</a></li>



<li style="padding-bottom:0"><a href="https://www.atlassian.com/git/tutorials">Git Tutorials and Training | Atlassian Git Tutorial</a></li>
</ul>



<div class="wp-block-group alignfull wp-elements-1 has-global-padding is-layout-constrained wp-container-core-group-is-layout-b68f1877 wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-group alignwide has-custom-light-blue-background-color has-background is-layout-flow wp-container-core-group-is-layout-78e40fa4 wp-block-group-is-layout-flow" style="border-radius:20px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:0;padding-bottom:var(--wp--preset--spacing--50);padding-left:0">
<div class="wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-43efaee5 wp-block-columns-is-layout-flex" style="padding-right:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:80%">
<h3 class="wp-block-heading has-text-align-left" id="h-have-an-upcoming-project-dmc-can-help-you-take-the-next-step">Have an upcoming project? DMC can help you take the next step.</h3>



<p class="has-text-align-left wp-block-paragraph" id="h-need-help-turning-ideas-into-outcomes-automation-project-to-the-next-level-contact-us-today-to-learn-more-about-our-solutions-and-how-we-can-help-you-achieve-your-goals">Take your project to the next level with engineering solutions from DMC. Learn more about our <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/" type="page" id="420">Automation</a> and <a href="https://static.dmcinfo.com/services/application-development/devops/" type="page" id="40125">DevOps</a> solutions or contact us to get started today!</p>
</div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<div class="wp-block-buttons is-horizontal is-content-justification-right is-layout-flex wp-container-core-buttons-is-layout-a048f62a wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-base-contrast-color has-text-color has-link-color wp-element-button" href="https://static.dmcinfo.com/contact/">Contact Us</a></div>
</div>
</div>
</div>
</div>
</div>
<p>The post <a href="https://static.dmcinfo.com/blog/43290/modern-devops-rockwell-plc-development/">Rockwell PLC DevOps: Modernizing Version Control</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
