I suppose you also read Bazaar vs. Git article, but in the end, it all comes down to what you are looking for in term of "feature-rich code management".
If, by code management, you are referring to file (and directories and renaming), go with Bazaar.
If, by code management, you are looking at content management, Git is designed to manage just that (the staging area, for instance, allows you to record what current content you want to commit, even though you have already begun to make some large modification you end up not wanting to commit in the current branch)
To be sure, re-read Linus's original vision for Git (back in April 2005). If you do agree with it, chances are Git will deliver what you want. In short:
- "files" do not matter. The only thing that matters is how "content" moved in the tree
- You have an SCM that tracks what changed at the only level that really matters, namely the whole project. None of the information actually makes any sense at all at a smaller granularity, since by definition, a "project" depends on the other files, or it wouldn't be a project
That "all project" notion is actually a strength and a limit for Git in term of project management: you should not seek to put everything into one Git repository.