Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. integration hell

integration hell

Scheduled Pinned Locked Moved The Lounge
collaborationsysadminquestionworkspace
29 Posts 18 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C cp andy

    HobbyProggy wrote:

    Never heard of LOCKS

    Yes, I very much know about locks but you can only lock it at SVN level not server level. Right? If tom, dick and harry lock few files then I can still push the file to test server and to production after making changes to it? So it doesn't help.

    HobbyProggy wrote:

    possibility to communicate with each other

    That's what we are doing now which takes up lot of time. So need a better solution. Hope you got my point smarty pants? :)

    C Offline
    C Offline
    Chuck OHalloran
    wrote on last edited by
    #21

    You may be using SVN, but you aren't using it correctly. This isn't a software problem. Here's a super quick, overly simple view of what should be going on: Daily work ================= 1) Check out code 2) Modify Code 3) Developer level / Unit testing 4) Check in code (handle your merge issues) Build ================= 1) Checkout code 2) Tag or version the checked out code 3) Build the code 4) Test the code A) If test successful, push to production B) If test not successful, dump the build. Notice that there is no modification in the build process?

    1 Reply Last reply
    0
    • C cp andy

      Hello All, We are in the process of reviewing our source control and the way we integrate. Currently we are using SVN but not using it's merging feature etc. All the basic ones like getting latest, commit, put etc. But our team has now increased and quite often two developers end up over writing each others code. Our environment looks like - Test server - where development happens and sit till the functionality is approved Live server - Once functionality is approved and tested, it goes to live (production) server. So my questions are: 1. What do you recommend - svn or GIT or svn is completely fine as long as we use all the features. 2. Should we really be developing in local and then pushing to test server and then production or what do you recommend? 3. Any other tips to automate this process? Thanks

      B Offline
      B Offline
      BryanFazekas
      wrote on last edited by
      #22

      There's a lot of good advice in this thread. The only thing I will add is instruct everyone to save a local copy of all changes made. Protecting your work, even when using a revision control system, is a 100-level rule everyone should follow. Trust nothing, servers can fail or be damaged, backups can be unrestorable. Everything will fail, eventually. No one with a lick of sense should get burned twice by losing their work.

      1 Reply Last reply
      0
      • C cp andy

        Hello All, We are in the process of reviewing our source control and the way we integrate. Currently we are using SVN but not using it's merging feature etc. All the basic ones like getting latest, commit, put etc. But our team has now increased and quite often two developers end up over writing each others code. Our environment looks like - Test server - where development happens and sit till the functionality is approved Live server - Once functionality is approved and tested, it goes to live (production) server. So my questions are: 1. What do you recommend - svn or GIT or svn is completely fine as long as we use all the features. 2. Should we really be developing in local and then pushing to test server and then production or what do you recommend? 3. Any other tips to automate this process? Thanks

        C Offline
        C Offline
        carlospc1970
        wrote on last edited by
        #23

        Are you the leader of this team? If so then first talk with your people and together find a solution. Choose one tool and learn it to heart. Do not skimp over a one page blogsite tutorial. Get a book or a course and take the time to learn it. Backup all your code and start trying the tool, do changes, test it, break it. Do this as a team and learn together. Don't say you don't have time for this. You will lose MUCH more time if your don't learn your tools. Then start using it as a team. When someone has doubts get together and solve it as a team. If someone doesn't understand the tool, get together and teach him/her. Go for it dear leader! :-D

        1 Reply Last reply
        0
        • C cp andy

          Hello All, We are in the process of reviewing our source control and the way we integrate. Currently we are using SVN but not using it's merging feature etc. All the basic ones like getting latest, commit, put etc. But our team has now increased and quite often two developers end up over writing each others code. Our environment looks like - Test server - where development happens and sit till the functionality is approved Live server - Once functionality is approved and tested, it goes to live (production) server. So my questions are: 1. What do you recommend - svn or GIT or svn is completely fine as long as we use all the features. 2. Should we really be developing in local and then pushing to test server and then production or what do you recommend? 3. Any other tips to automate this process? Thanks

          S Offline
          S Offline
          sx2008
          wrote on last edited by
          #24

          cp-andy wrote:

          But our team has now increased and quite often two developers end up over writing each others code.

          I seems that you have a problem with the partioning of your codebase. Try to identify the hot spots and refacture it (smaller classes, more source files, apply well known design patterns)! Watchout for source code files with many bugfixes and files with too many lines of code. Changing your version control system doesn't help if 2 or more developers make large changes on the same files. Git (or any other version control system with 3-way-merge) can only merge small changes automatically.

          1 Reply Last reply
          0
          • L Lost User

            The simple answer here, I think, is to check in your code when you change it, and not after it has been through the test server process. If it fails testing, you need to fix it, check changes in then submit to test server - so everyone is getting the latest version of the source most of the time, rather than having long delays between getting code and updating. though I'm not sure what you mean by 'test server' in your context - are you pushing code to the test server before checking it back in to SVN?

            PooperPig - Coming Soon

            C Offline
            C Offline
            cp andy
            wrote on last edited by
            #25

            Basically, we get latest from the svn and then dev A works on it and pushes to test server directly and not to SVN. Once bugs are sorted and is a stable version, then dev pushes it to SVN and to production server. I am going through all the suggestions now and see what can work for us. Thanks

            1 Reply Last reply
            0
            • S SkysTheLimit

              We are a team of almost 100 developers working on the same code. We use git and merge seems to work well in most cases. We do not use a test server because of problems that you describe. Instead we schedule regular 'stability points' that serve as snap shots and used for testing etc. A few days before a stability point, we are asked not to push any major changes while a few team members do some simple testing and fixing before releasing the build for major testing/customers etc. Anything major is then fixed in the stability branch and cherry picked over to the main branch. It is not ideal but it seems to work acceptably especially with so many developers working on the same code base. Of course, our code is for embedded systems and so it is a little different to what you describe.

              C Offline
              C Offline
              cp andy
              wrote on last edited by
              #26

              SkysTheLimit wrote:

              we schedule regular 'stability points' that serve as snap shots and used for testing etc

              Sounds good but where do you test these stability points? At local or development server?

              S 1 Reply Last reply
              0
              • C cp andy

                SkysTheLimit wrote:

                we schedule regular 'stability points' that serve as snap shots and used for testing etc

                Sounds good but where do you test these stability points? At local or development server?

                S Offline
                S Offline
                SkysTheLimit
                wrote on last edited by
                #27

                We make a separate git branch for each stability point and deploy the code to several development benches for testing. One challenge of doing it this way is that some things that are found in a stability point may already be fixed in the master branch and so it takes a little extra time to go through the issues to verify that's the case. It also means that you may end up fixing the issue in both branches but with git, the cherry-picking seems to work quite well.

                1 Reply Last reply
                0
                • C cp andy

                  Hello All, We are in the process of reviewing our source control and the way we integrate. Currently we are using SVN but not using it's merging feature etc. All the basic ones like getting latest, commit, put etc. But our team has now increased and quite often two developers end up over writing each others code. Our environment looks like - Test server - where development happens and sit till the functionality is approved Live server - Once functionality is approved and tested, it goes to live (production) server. So my questions are: 1. What do you recommend - svn or GIT or svn is completely fine as long as we use all the features. 2. Should we really be developing in local and then pushing to test server and then production or what do you recommend? 3. Any other tips to automate this process? Thanks

                  C Offline
                  C Offline
                  cp andy
                  wrote on last edited by
                  #28

                  Thanks everyone for very informative replies. I will be doing some RnD on the basis of your suggestions and hopefully will find one solution.

                  1 Reply Last reply
                  0
                  • C cp andy

                    HobbyProggy wrote:

                    Never heard of LOCKS

                    Yes, I very much know about locks but you can only lock it at SVN level not server level. Right? If tom, dick and harry lock few files then I can still push the file to test server and to production after making changes to it? So it doesn't help.

                    HobbyProggy wrote:

                    possibility to communicate with each other

                    That's what we are doing now which takes up lot of time. So need a better solution. Hope you got my point smarty pants? :)

                    T Offline
                    T Offline
                    TheGreatAndPowerfulOz
                    wrote on last edited by
                    #29

                    cp-andy wrote:

                    push the file to test server and to production after making changes to it

                    Without going through a build/test/QA phase? That's nuts! This is a process problem, not a source control problem!

                    Decrease the belief in God, and you increase the numbers of those who wish to play at being God by being “society’s supervisors,” who deny the existence of divine standards, but are very serious about imposing their own standards on society.-Neal A. Maxwell You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • World
                    • Users
                    • Groups