Push batches of changes to main branch in Bazaar dotted notation - bazaar

I'm a DVCS newbie using Bazaar. I made a dev branch of the main repo and made many small commits. After I did a bzr push, the main line has sequential revision numbers (10,11,12,13) of all my small changes. How can I make it use dotted notation so the log isn't cluttered with a million insignificant commits? I want the main repo to store my changes as 11.1, 11.2, 11.3, etc. (or whatever the dotted notation style is).
TL;DR: I want the main branch to only show a commit message summary for a batch of smaller changes made in a separate branch, and store those changes in dotted notation.
Thanks.

Merge your feature branches in, rather than pushing/pulling them in. If you want revisions 10, 11, 12 and 13 to be "grouped" (be considered a feature branch), do something like this:
bzr branch -r9 YOURTRUNK temp
cd temp
bzr merge -d temp YOURTRUNK
bzr ci -m "Merge feature X"
bzr push --overwrite ../YOURTRUNK

Related

What exactly does "Shelve base revisions of files under distributed version control systems" do in IntelliJ?

This is the official description of the docs
If this option is enabled, the base revision of files will be saved to
a shelf that will be used during a 3-way merge if applying a shelf
leads to conflicts. If it is disabled, IntelliJ IDEA will look for the
base revision in the project history, which may take a while;
moreover, the revision that the conflicting shelf was based on may be
missing (for example, if the history was changed as a result of the
rebase operation).
What does this setting do in more simple terms and does it have implications on merge conflicts as well without using shelves explicitly?
The reason for this question is mainly an issue we are frequently facing during merge conflicts, where old changes keep re-appearing out of nowhere that delete lines of code which are still being used.
One of the patch files in the .idea/shelf directory contains these exact changes which makes me assume it is related to what we are witnessing.
Uncommitted_changes_before_Checkout_at_28_12_2021_10_30_[Default_Changelist]

How to show parallel lines UI for git branches in IntelliJ?

How can I show parallel branch lines in IntelliJ git logs?
This is my old project and it shows like that.
In my newer project although I have multiple branches merged to master already, still, that beautiful view isn't there, it's just the straight line appearing.
Is this an IntelliJ bug or I don't get when those lines gets showed?
Judging by the screenshot, the history of your repository is just linear - there are no commits that have more than a single child - that is why no other branches are in the graph.
Branches in git are in fact just a reference to a commit. So several branches can be referencing the same commit without producing any branches in the graph. This seems to be the case.
Intellij has a plugin named GitHub, if you install it (from settings -> plugins)
you will have a 'git' tab at the bottom, inside that tab you will see the GUI you are referring to

I have a file on three branches. How do I make sure it only exists on one branch?

Background
I have a clearcase file that has changes on 3 different branches. I am refactoring this file so that, within the same directory, it only exists on one branch. The files on the other branches I will move to their own special directories.
Question
How do I remove the versions of a file on different branches?
A simple cleartool rmname, done in a view set to the relevant branch, should be enough.
See a detailed description of that command in "About cleartool rmname and checkouts"
This is far safer than a cleartool rmelem, which would completely deletes one or more elements.

Procedure to make Bazaar Subtrees

I have been struggling to make bazaar subtrees work (documentation is sparse as opposite to git submodules).
My repo sample layout is
root (d)
.bzr (d)
MyFolder (d)
MyData2.txt
SubRepo (d)
MyData3.txt
MyData.txt
I have tried the following commands in the bazaar repo (to make a subtree out of a top level folder "SubRepo"):
bzr split SubRepo
bzr join --reference SubRepo
bzr commit SubRepo
Now, I am not sure how to proceed (ie. to list the subtrees in main subtree, commit/push the subtree to a remote repo, etc.)
My understanding is that when finished the subfolder must live in its own repo and it must be possible to populate the "SubRepo" folder from the main repo by pulling from the remote subfolder repo.
I am following instructions from http://wiki.bazaar.canonical.com/NestedTreesDesign#id20
Anyway, If not else, I will post here my findings.
Bazaar nested tree support is unfinished. The URL you're linking (http://wiki.bazaar.canonical.com/NestedTreesDesign#id20) is a design document; it does not describe current behaviour.
bzr split and bzr join will work but are for so-called "by-value" nested trees, e.g. simply merging in the containing tree rather than merely referencing it.
bzr join --reference is partially implemented but does not fully work yet. It does not seem likely this will be available in the near future, as there is nobody actively working on nested tree support. See also this bug report on launchpad: https://bugs.launchpad.net/bzr/+bug/402814

Stop Bazaar (bzr) from making .moved files

Is there a way to tell bzr not to create .moved files? I've tried the --overwrite option with a bzr pull, but it still creates the .moved files. I guess I can just make a clean-up script, but I was just wondering if I am missing something.
You have conflicts in some filenames: either you have unversioned foo in your tree and you pull revision where foo becomes versioned, or you have added foo in two different branches independently and therefore each copy of foo got assigned different file-ids. So Bazaar tries to save your files there and avoid overwrite your existing files. In the first case you have harmless backup facility from bzr, and foo.moved can be deleted. But in the second case you have real conflict and you should at least inspect both foo and foo.moved and resolve conflict with bzr resolve foo, then delete foo.moved if needed.
So the strategy to avoid .moved files is pretty much depend on the reason why they are appear in your tree.