Help me make my new variant! (please!)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • will_asher
    DaJAngband Maintainer
    • Apr 2007
    • 1124

    Well, Pete made it sound like using git would make getting changes from newer V relatively easy. But it's still turning out to be a huge pain. Is there any way to make this less trouble? or maybe I won't bother trying to keep up with changes in V.
    Maybe I should've gone back to a more stable version to base my variant on (or waited for a more stable future version).

    Github is not very user friendly to casual hackers like me.
    Last edited by will_asher; July 18, 2021, 23:31.
    Will_Asher
    aka LibraryAdventurer

    My old variant DaJAngband:
    http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

    Comment

    • Pete Mack
      Prophet
      • Apr 2007
      • 6883

      Will--
      You dont need to accept all changes in V if you dont want them--in fact you almost certainly dont. What you will want is bug fixes. You can find those by browsing the log.
      Finally, there are tutorials on how to merge changes from two different branches, and how to pick changes for merging. Or you can just ignore V changes going forward. The point is to have a source control for your own code.

      Comment

      • Julian
        Adept
        • Apr 2021
        • 122

        Originally posted by will_asher
        Well, Pete made it sound like using git would make getting changes from newer V relatively easy.
        It’s all relative. Without git, it’d be a nightmare.

        But it's still turning out to be a huge pain. Is there any way to make this less trouble?
        Just practice and learning the tools, I’m afraid.

        Github is not very user friendly to casual hackers like me.
        Git is, to be frank, not a friendly tool. Github and gui front-ends make it somewhat easier, but even if the open-source world had settled on Mercurial instead, there’s only so much easier things can get; what is being done is fundamentally complicated and extremely hard to automate.

        Comment

        • Pete Mack
          Prophet
          • Apr 2007
          • 6883

          ... and by far the hardest part is merging conflicts. (Merging branches is harder, but really rare.)

          Comment

          • will_asher
            DaJAngband Maintainer
            • Apr 2007
            • 1124

            Originally posted by Pete Mack
            Will--
            You dont need to accept all changes in V if you dont want them--in fact you almost certainly dont. What you will want is bug fixes. You can find those by browsing the log.
            Finally, there are tutorials on how to merge changes from two different branches, and how to pick changes for merging. Or you can just ignore V changes going forward. The point is to have a source control for your own code.
            Yeah. I think I'll just look for the changes with bugfixes.
            Will_Asher
            aka LibraryAdventurer

            My old variant DaJAngband:
            http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

            Comment

            • will_asher
              DaJAngband Maintainer
              • Apr 2007
              • 1124

              So I just finished merging a bunch of commits from newer V into my Rubberband branch on github. And now I can't sync with my code in Virtual Studio.

              In order to use github desktop to cherry-pick commits, I had to change the name of my folder on github. (I changed it from "Rubberband" to "Rubberband-master") I figured changing my "source" in Visual Studio likewise would let it be able to sync the code, but it doesn't.
              EDIT: Here's the message it gives me when trying to sync:
              "Remote: Repository not found.
              Git failed with a fatal error.
              repository 'https://github.com/will2asher/RubberBand-master/' not found"

              Can anyone help with this?

              I posted my question on the github community forum as well:

              GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.


              EDIT: Maybe I'll just have to re-clone the source from git.
              Last edited by will_asher; July 21, 2021, 05:29.
              Will_Asher
              aka LibraryAdventurer

              My old variant DaJAngband:
              http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

              Comment

              • will_asher
                DaJAngband Maintainer
                • Apr 2007
                • 1124

                Can I bump my previous post? Nobody on the github forum is helping, and it seems like any progress on my RubberBand variant is completely halted until I can get a solution for this.

                When I try to sync with Visual Studio using the origin "https://github.com/will2asher/RubberBand", it gives me this:
                "Opening repositories:
                C:\Users\Dajustiss\Documents\My Games\RubberBand\Angband\angband
                Warning: Pulling without specifying how to reconcile divergent branches is
                discouraged. You can squelch this message by running one of the following
                commands sometime before your next pull:
                git config pull.rebase false # merge (the default strategy)
                git config pull.rebase true # rebase
                git config pull.ff only # fast-forward only
                You can replace “git config” with “git config --global” to set a default
                preference for all repositories. You can also pass --rebase, --no-rebase,
                or --ff-only on the command line to override the configured default per
                invocation.
                Everything up-to-date"
                ...But everything isn't up to date. Why is it saying "Pulling without specifying how to reconcile divergent branches is discouraged"? I shouldn't have divergent branches. I already chose which changes to keep or not keep on Github desktop and pushed it all back to github.

                EDIT: Maybe I'll just have to re-clone the source from git.
                I'm not even sure if re-cloning will work, since it seems to have created a separate branch for all these changes which is not what I wanted it to do.
                Will_Asher
                aka LibraryAdventurer

                My old variant DaJAngband:
                http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

                Comment

                • Nick
                  Vanilla maintainer
                  • Apr 2007
                  • 9647

                  I don't use Github desktop, but here are a few thoughts:
                  • From the state of your repo on Github, it looks like you have worked on two branches, master and Rubberband-master; I'm guessing the first is just an earlier version of the second.
                  • I suspect the "Pulling without specifying how to reconcile divergent branches is discouraged" message is because you have a mismatch between the branch on Github that you are pulling from, and the local branch it is trying to merge into.
                  • I usually don't use git pull; I use git fetch, and then git merge. This should end up with the same result, but I feel like I have more control that way. In particular, in your situation, you should be able to do a git fetch (which will get all the branches from Github), and then, while on the branch you want to merge into, do a git merge <branch you want to merge in>.
                  • It is easy to make branches. Before doing anything experimental, make a new branch and try it out there to see if it works.
                  One for the Dark Lord on his dark throne
                  In the Land of Mordor where the Shadows lie.

                  Comment

                  • will_asher
                    DaJAngband Maintainer
                    • Apr 2007
                    • 1124

                    Originally posted by Nick
                    I don't use Github desktop, but here are a few thoughts:[*]From the state of your repo on Github, it looks like you have worked on two branches, master and Rubberband-master; I'm guessing the first is just an earlier version of the second.[*]I suspect the "Pulling without specifying how to reconcile divergent branches is discouraged" message is because you have a mismatch between the branch on Github that you are pulling from, and the local branch it is trying to merge into.
                    I tried to rename the main folder on github so github destop wouldn't give me an error saying there was a duplicate folder name. Instead it apparently made a new branch with the new name. ugh.
                    Originally posted by Nick
                    [*]I usually don't use git pull; I use git fetch, and then git merge. This should end up with the same result, but I feel like I have more control that way. In particular, in your situation, you should be able to do a git fetch (which will get all the branches from Github), and then, while on the branch you want to merge into, do a git merge <branch you want to merge in>.
                    That sounds promising. I'll try that. Probably later though, because the frustration so far has made me not want to bother with it anymore tonight.
                    Originally posted by Nick
                    [*]It is easy to make branches. Before doing anything experimental, make a new branch and try it out there to see if it works.
                    This sounds like it would be confusing and hard to keep track of everything. It'd bad enough with three copies of my code (the 'origin' on github, the main one I do my coding on in Visual Studio, and the one used by github desktop) that I want to keep synced. It seems safest to me to keep all the changes in one place (or as few places as possible at least). If something doesn't work, I can always undo the last commit or something.
                    Will_Asher
                    aka LibraryAdventurer

                    My old variant DaJAngband:
                    http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

                    Comment

                    • fph
                      Veteran
                      • Apr 2009
                      • 1030

                      I think every git user has gone through a few moments when they did not understand what was going on, and they had to back up their local work, delete everything and re-clone. So no shame in that. There's even an xkcd about that. https://xkcd.com/1597/ .
                      --
                      Dive fast, die young, leave a high-CHA corpse.

                      Comment

                      • will_asher
                        DaJAngband Maintainer
                        • Apr 2007
                        • 1124

                        Still trying to recover my code after merging with (some but not all) recent V changes created a whole bunch of error messages and bugs. I'm never doing it that way again. If I want to get changes from V, I will look at a diff and do it manually.

                        I'm down to a few linker errors.
                        I'm getting "unresolved external symbol _textui_get_effect_from_list" in ui.input.c. I did a search and "textui_get_effect_from_list" does not appear anywhere else in my code. I tried to search the RubberBand code on git and it says "forked repositories are not currently searchable" which really sucks.
                        So I searched for it in the V code, turns out "textui_get_effect_from_list" is from ui-effect.c. I don't even have a file called ui-effect.c in RubbberBand. It must be from newer V. How do I resolve this? What file was "textui_get_effect_from_list" in before it was moved to ui-effect.c?

                        EDIT: I could just add the ui-effect.c and ui-effect.h files to my code, but I have a feeling that'll just make more errors since I apparently have part of the change, but not the whole thing.
                        Last edited by will_asher; July 27, 2021, 01:51.
                        Will_Asher
                        aka LibraryAdventurer

                        My old variant DaJAngband:
                        http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

                        Comment

                        • backwardsEric
                          Knight
                          • Aug 2019
                          • 531

                          Originally posted by will_asher
                          I'm down to a few linker errors.
                          I'm getting "unresolved external symbol _textui_get_effect_from_list" in ui.input.c. I did a search and "textui_get_effect_from_list" does not appear anywhere else in my code. I tried to search the RubberBand code on git and it says "forked repositories are not currently searchable" which really sucks.
                          So I searched for it in the V code, turns out "textui_get_effect_from_list" is from ui-effect.c. I don't even have a file called ui-effect.c in RubbberBand. It must be from newer V. How do I resolve this? What file was "textui_get_effect_from_list" in before it was moved to ui-effect.c?
                          It's a completely new function added to support the SELECT effect (EF_SELECT). ui-effect.c and ui-effect.h were added in this pull request, https://github.com/angband/angband/pull/4829 .

                          Comment

                          • will_asher
                            DaJAngband Maintainer
                            • Apr 2007
                            • 1124

                            Originally posted by backwardsEric
                            It's a completely new function added to support the SELECT effect (EF_SELECT). ui-effect.c and ui-effect.h were added in this pull request, https://github.com/angband/angband/pull/4829 .
                            Okay, so I just added the ui-effect.c and ui-effect.h files to my code, and finally got it to compile and run again.
                            thanks

                            I hope there aren't many more bugs from the merge that the compiler didn't catch with errors.
                            Will_Asher
                            aka LibraryAdventurer

                            My old variant DaJAngband:
                            http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

                            Comment

                            • will_asher
                              DaJAngband Maintainer
                              • Apr 2007
                              • 1124

                              So I'm playtesting Rubberband and I'm getting that bug where 1 arrow turns into about 400 when I pick one up (it seems to automatically fill the quiver). I remember this bug (or a similar one at least) happening in V. Could you point me to where it was fixed in V? (assuming it was fixed in V.)
                              Will_Asher
                              aka LibraryAdventurer

                              My old variant DaJAngband:
                              http://sites.google.com/site/dajangbandwebsite/home (defunct and so old it's forked from Angband 3.1.0 -I think- but it's probably playable...)

                              Comment

                              • backwardsEric
                                Knight
                                • Aug 2019
                                • 531

                                Originally posted by will_asher
                                So I'm playtesting Rubberband and I'm getting that bug where 1 arrow turns into about 400 when I pick one up (it seems to automatically fill the quiver). I remember this bug (or a similar one at least) happening in V. Could you point me to where it was fixed in V? (assuming it was fixed in V.)
                                There was the problem you reported with flasks of oil multiplying, I believe that was addressed in https://github.com/angband/angband/pull/4671 . It's taken several sets of changes to get the handling of thrown weapons in the quiver to its current state. In order from first to last they were (the key files are obj-gear.c and player-calcs.c (for calc_inventory()):
                                1. https://github.com/angband/angband/c...0afb42d95943f2
                                2. https://github.com/angband/angband/pull/4613
                                3. https://github.com/angband/angband/c...d95d01d83141e2
                                4. https://github.com/angband/angband/c...d95d01d83141e2
                                5. https://github.com/angband/angband/c...d95d01d83141e2
                                6. https://github.com/angband/angband/pull/4671
                                7. https://github.com/angband/angband/c...d95d01d83141e2
                                8. https://github.com/angband/angband/pull/4769

                                Comment

                                Working...
                                😀
                                😂
                                🥰
                                😘
                                🤢
                                😎
                                😞
                                😡
                                👍
                                👎