git and C++ workflow, how to handle object and archive files?

前端 未结 8 1826
鱼传尺愫
鱼传尺愫 2021-02-05 20:40

I use git to interface with an SVN repository. I have several git branches for the different projects I work on.

Now, whenever I switch from one branch to another using

8条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-02-05 21:23

    What you want is a full context, not just the branch... which is generally out of scope for a version control tool. The best way to do that is to use multiple repositories.

    Don't worry about the inefficiency of that though... Make your second repository a clone of the first. Git will automatically use links to avoid having multiple copies on disk.

    Here's a hack to give you want you want

    Since you have separate obj directories, you could modify your Makefiles to make the base location dynamic using something like this:

    OBJBASE = `git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1\//'`
    OBJDIR = "$(OBJBASE).obj"
    # branch master: OBJBASE == "master/", OBJDIR == "master/.obj"
    # non-git checkout: OBJBASE == "", OBJDIR == ".obj"
    

    That will but your branch name into OBJBASE, which you can use to build your actual objdir location from. I'll leave it to you to modify it to fit your environment and make it friendly to non-git users of your Makefiles.

提交回复
热议问题