Altium - File Versioning - Step by Step using Git (GitHub)

Поделиться
HTML-код
  • Опубликовано: 22 окт 2024

Комментарии • 95

  • @MarkFreeman-kv4yi
    @MarkFreeman-kv4yi 7 месяцев назад

    Your step-by-step Altium videos are a great way to get started (or re-started for me). One subtle update, since making this video: The default branch for a new repository is now named main, instead of master. The command "git push origin master" is now "git push origin main".

  • @amir_chaudhary
    @amir_chaudhary Год назад +2

    This is a very knowledgable tutorial. Thank you Robert.

  • @domenicospagnuolo8811
    @domenicospagnuolo8811 4 года назад +7

    As an embedded sw engineer, I usually work with git and that's why I used git with Altium in the traditional manner. Now I see great advantages in using GIT integrated in Altium (expecially to see differences between different commits) but serious problems could arise if two or more designers are working "simultaneously" on the same project. An example is shown when you try to push a commit involving files already modified by another designer: when you insist to push, there should be a command like "push -f" behind the Altium GUI to overcome the conflicts (not a clean and safe way to work). I think it would be better if every designer can work on his/her own branch and then compare the differences when it is needed to decide how to go on. I don't know wether it is possible to set different branches directly from Altium. SW engineers can use commands like "git merge" or "git rebase" to unify their branches but it could be a chaos or probably too difficult when working on hw designs, but it is just my opinion and I have no experience about that. Anyway Robert, another great video. Thank you very much!!!

    • @JonitoFischer
      @JonitoFischer Год назад

      Altium files are binary files, so these merge and rebase commands are not so easy to implement. This does not happen on Kicad or Eagle files as they are text based. Altium is not very friendly to git.

  • @kushlavr
    @kushlavr 4 года назад +4

    Hi Robert - excelent step-by-step tutorial. Good jub.
    When I use version control (not in Altiom, but in Visual Studio) in my projects it is very common situation with conflict changes. When I start to push my changes - the version control system always ask me to resolve conflicts before upload.
    If you go to 39:51 of your video - git says to you that push was rejected (attention: only push rejected, local commit was done success), becaose of your local branch is behind remote.
    It is means that you make chaneg in file that is older (not the latest version) than file on github server (remote - > internet version of files).
    After this action - git refresh local commit history and marge it with server one. So next time you make push - your project is up to date.
    To prevent this situation - After refreshing you nead: Commit -> Update project -> push changes.

    • @RobertFeranec
      @RobertFeranec  4 года назад +1

      Thank you Vitalij! I thought it is something with branch being behind.

    • @kushlavr
      @kushlavr 4 года назад

      @@RobertFeranec By the way - if you go to insights/network tab of your project - you'll see how actually cocnurent brances are marged on git
      github.com/robertferanec/youtube-28pins/network

  • @sandafoks7056
    @sandafoks7056 3 года назад

    You sir, saved my day. I could not get it working properly following other instructions. Your video was very well explained. Thank you so much :)

  • @xiaoyi982
    @xiaoyi982 3 года назад

    OMG. You are making these videos wholeheartedly. Also love the "exaggerating emotional expressions", it's just so rich. You are a saint in EE Robert.

  • @giannisasp1208
    @giannisasp1208 4 года назад +6

    Hi Robert, one more great video! Thanks!
    And I would just like to note, for people that don't want to use command line fot git, there are also a few nice apps with GUI to handle git interactions, commit, push e.t.c. which makes things a bit easier.

    • @kushlavr
      @kushlavr 4 года назад +3

      Yes. For ex: GitHub Desktop

    • @RobertFeranec
      @RobertFeranec  4 года назад +4

      Thank you Giannis. Yes, there is a nice GUI for git, even for github: Github Desktop: desktop.github.com/

    • @justinmassiot
      @justinmassiot 4 года назад +2

      I'd personally recommand SourceTree from Atlassian, which is way more complete than GitHub Desktop.

    • @kushlavr
      @kushlavr 4 года назад

      @@justinmassiot does it compatible with version cont ol implementation in Altium?

    • @justinmassiot
      @justinmassiot 4 года назад

      @@kushlavr It doesn't really make sense to wonder if they're compatible or not: SourceTree uses Git, Altium uses Git, GitHub Desktop uses Git. They all work the same way: they call Git commands.
      So yes of course, SourceTree should be 100% compatible with Altium. Exactly as you can use the Git command line in parallel with Git for Altium without breaking anything.
      You may be interested in some readings about compatibility between TortoiseSVN and Altium, which is exactly the same concern but for SVN: forum.live.altium.com/#posts/235981/731198

  • @pseudonim1
    @pseudonim1 4 года назад +1

    Hello, Robert. In AD19 Altium didnt support branches, but in AD20 it supports. You should use git gui instead altiums git, but it WORKS! I just tested it.

    • @RobertFeranec
      @RobertFeranec  4 года назад +1

      Interesting. I will have a look at branches. Thanks for the tip!

  • @EDGARDOUX1701
    @EDGARDOUX1701 4 года назад +1

    Again a great video Robert! Thank you so much. Regards from Buenos Aires, Argentina

  • @KHCshadow1
    @KHCshadow1 4 года назад +2

    Nice video Robert. I've used git for a long time with Eagle. If two users make a change to the same document they create a "merge conflict". I noticed in Altium under the version control menu there is an option for "resolve conflicts". I'd be curious to see how well this works in Altium. In Eagle you can solve merge conflicts manually since the schematic/board files are XML text files. I think how easily merge conflicts can be resolved will determine how easy it is to use this with many users. Cheers

  • @ezokaram
    @ezokaram 3 года назад

    Yes you did it Robert. I am a new Git user but i tried. you make me easer thank you a lot :-)

  • @SunilYadav-th1wb
    @SunilYadav-th1wb 8 месяцев назад

    Thankyou for explaining so easily.

  • @JJSnel-uh3by
    @JJSnel-uh3by 3 года назад

    Love it dude! I'm not looking forward when I get off school and I want to keep using altium XD
    This isn't what I study but it is something I might do a minor in. I love it but it's too addictive!
    And thank you for this! I really needed a good way of keeping everything organized!

  • @m4l490n
    @m4l490n 4 года назад +2

    Here is a tip, a shortcut if you will.
    Instead of cloning the empty project and copy the project files from their original folder to the cloned copy, you can just navigate with git bash, or PowerShell, where the folder of the original project is and execute the following two commands:
    git init
    git remote add origin github.com/robertferanec/youtube-28pins.git
    The first command will create a local repository directly on the original folder so no copy-pasting is necessary. The second command will indicate this newly created repo the remote repository where "git push" is going to push to, (and where git pull is going to pull from). After this, then you just execute the git add and git commit as you just showed.

  • @boriskontorovich
    @boriskontorovich 2 года назад

    This is a great tutorial. Thank you Robert.

  • @brunobrolesi5153
    @brunobrolesi5153 4 года назад

    Hi Robert, thank you very much for sharing this type of content, you are a great teacher and you are helping me to evolve a lot in Altium, thank you very much.

  • @arthurchassande833
    @arthurchassande833 3 года назад

    very nice ! works just fine on my computer. Didn't try this with my team but i'm sure it will work. Tks !

  • @linnqiang262
    @linnqiang262 4 года назад

    Hi Robert, Genius! That is a great video ! Thanks you so much for the wonderful thing. I have used Gitlab for Altium PCB design, not sure what is difference between them, but Github looks cool stuff too !

  • @joelbrown9086
    @joelbrown9086 3 года назад

    Wow this in new to me and very helpful - Thanks

  • @mohamedtebbo123
    @mohamedtebbo123 3 года назад

    Thank you alot robert !!! I wanted to know how to upload all of my integrated library files on github and retrieve them online using github instead of having alot of files on my PC

  • @tufanpars
    @tufanpars 4 года назад

    Thanks Robert, very well explained.

  • @justinmassiot
    @justinmassiot 4 года назад

    Thanks @Robert Feranec for this video.
    For those who are interested, version control under Altium Designer is also doable with SVN. It's my preferred choice because we can place exclusive locks on files to avoid conflicts (tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-locking.html).
    See how can you compare two Altium files with SVN: gotomation.info/2019/02/file-comparison-altium-designer/

  • @531umi730
    @531umi730 7 месяцев назад

    Can you please guide regarding central libraries if I don't want to use Altium 365. What is good for it and how can we setup it inside a company?

  • @RadioTexnik
    @RadioTexnik 2 года назад

    Thank you! Keep like!

  • @gabrieltovar1235
    @gabrieltovar1235 4 года назад

    Thanks for the video. VERY WELL EXPLAINED !!

  • @bhagathch7349
    @bhagathch7349 4 года назад

    Wonderful tutorial.

  • @gunit858
    @gunit858 3 года назад

    how do you get the revision number to not be that crazy long string of characters for when it gets pulled into the title block?

  • @morris2005
    @morris2005 3 года назад

    Hi Robert. Firstly, thank you for the very informative video. I am looking into using this approach for our projects. This has enlightened me. One big (more general) question I still have, is the version/revision number in the documents and file names themselves (not Git versions). For example we start with a V1.0 and if there are schematic changes we move to V1.1, for PCB changes we go to V2.0. This is written throughout the documents and on the PCB.
    Question is do you manually rename the files and version text in the project files, when you make a new version, like the 1I1 in your filenames and revisions? (if you change to 1I2 for example).
    At the moment I copy and paste the file structure, and manually rename the file names and references in the project files to the new version, wondering if I still need to do that, to keep the versions separate and differentiate between the files and outputs of V1.0 and V2.0 for example.
    Thanks a lot, hope you can help :-)

    • @wl9052
      @wl9052 Год назад

      that doesn not rev up automatically\

  • @chaochang1305
    @chaochang1305 3 года назад

    Great video!

  • @antoniocontursi7477
    @antoniocontursi7477 4 года назад

    Very interesting video Robert. I'm waiting for your video on Database :)... i have only a question: it can be possible to set in a similar way also a SVN repository directly from Altium Designer? In this case i see in Altium the SVN Design Repository. Let me know how do you think about.

    • @RobertFeranec
      @RobertFeranec  4 года назад

      You can set SVN, but I din't want to because I wanted to use git on internet (I do not really know the companies hosting SVN, github was ok for me).

  • @VasiliyVorobey
    @VasiliyVorobey 4 года назад +1

    The sad part about git in Altium is that Altium still doesn't support git-lfs (git addon for storing large binary files). If you're using git as is (without LFS) - you'll get ridiculously large repository (let's say your PcbDoc weights 15MB, then each commit with PcbDoc will add 15MB to repo size, same nightmare with IntLibs), and if you're using LFS (like me) - you can't commit directly from Altium, only with a separate tool like Sourcetree or git CLI.
    I hope that Altium 21 will have LFS support, it would be great relief :)

    • @rigomatezoltan4302
      @rigomatezoltan4302 4 года назад +1

      If Altium just used git cli for git accessing it would be as easy as exchanging the git.exe to get git-lfs support.
      edit : Altium uses libgit2 for git integration. So it is up to Altium to get git-lfs working.

    • @VasiliyVorobey
      @VasiliyVorobey 4 года назад

      Rigó Máté Zoltán possibly Altium will lack specific lfs commands in it’s workflow, but good point about external cli. At least most of the features must work

  • @SoorajGopakumar
    @SoorajGopakumar 4 года назад

    Thanks for the great video Robert. Can you do a video on trying out the new electronic design in Fusion 360? If it is nearly as good as altium, it could be a free ecad tool for enthusiasts and hobbyists.

    • @tillorrly1128
      @tillorrly1128 3 года назад

      Just use KiCAD, seriously.
      Either KiCAD or Altium. Depending on your budget and your customers.

    • @SoorajGopakumar
      @SoorajGopakumar 3 года назад

      @@tillorrly1128 I was looking at it from the point of view that Fusion could do the whole product design under one tool.

  • @Robotech010
    @Robotech010 4 года назад

    Looking at the docs it seems Git integration started with Altium 2018. I'm on 2017 so I use git the 'vanilla' way ie. without using Altium's version control features, typing in git commands directly in a separate window.
    Even with recent versions I think using git from outside Altium may be easier, because we can re-use the same CLI or GUI-based interface to version both hardware and software projects.

    • @RobertFeranec
      @RobertFeranec  4 года назад +1

      I was also using git command line for a while on my HW projects .. until I found out it can be easily used directly from Altium.

  • @wl9052
    @wl9052 Год назад

    Hey what if I dont want to accept the changes the other engineer pushed ? can We set up an admin that is responsible for the main branch and approved all the pull request?

  • @chaochang1305
    @chaochang1305 3 года назад

    Our company use internal networs,the computers is encrypted,how could we implement version control,we use PLM but I find it not convienient.

  • @marcarleto79
    @marcarleto79 2 года назад

    Thank you very much for the video Robert, it's very useful for me but I have one question: what about my custom schematics and PCB components library (LibPkg/IntLib files) associeted to the projects? I just need to put at the repository and it will syncronized too?

  • @mbuchwald_atg
    @mbuchwald_atg 4 месяца назад

    Didn't work for me, couldn't push commits nor fetch new ones from others from within Altium. External updates were working fine.
    After lots of digging: The Altium git component still cannot push to non-bare repositories, while the regular CLI/GUI client can (we like a fully exposed working copy in our directories). Simple solution - move the thing to a bare repo and now everything works as expected...

  • @mrlnley
    @mrlnley Год назад

    I'm adding 3d body for components footprints , then I'm press 3 buttom 3d body doesn't showing silk layer only show how to fix 😿

  • @fieryfirevivin
    @fieryfirevivin 4 года назад +1

    0 dislikes. Amazing

  • @tranucchinh3743
    @tranucchinh3743 4 года назад

    How about the database library used with Github? Can you give a little more guidance on this? thank you very much!

    • @RobertFeranec
      @RobertFeranec  4 года назад

      It was my plan to make a video about it .. but it was not ideal. Currently experimenting with libraries through Altium 365

  • @АндрейИ-ф3л
    @АндрейИ-ф3л 4 года назад

    Robert, thank you for lesson.
    Do you know how to place PCB revision number on overlay? E.g. : v.1.3 . And then after modify PCB this one will automaticaly incremented.

    • @RobertFeranec
      @RobertFeranec  4 года назад

      use project parameters - this can give you an idea how you can use it (you can use parameters in schematic, but also in PCB). It will not be automatically incremented, but you can easily change it in one place: ruclips.net/video/cD-iW0LNR9Q/видео.html

  • @CoversTavo
    @CoversTavo 4 года назад

    Genius

  • @Mohamad-dc1zx
    @Mohamad-dc1zx 6 месяцев назад

    What we would do without you...

  • @bobwang8903
    @bobwang8903 3 года назад

    I can't find IMX8M Project in your website fedevel

    • @RobertFeranec
      @RobertFeranec  3 года назад

      Hi Bob, it is a custom project, it is not public. I only have permissions to use it for my videos.

    • @bobwang8903
      @bobwang8903 3 года назад

      @@RobertFeranec Thank you for your reply

  • @arcoshpl
    @arcoshpl 4 года назад

    What about merging of two changed files? Is that possible?

    • @RobertFeranec
      @RobertFeranec  4 года назад +1

      I have not tried that, but I have seen that kind of option there: www.altium.com/documentation/altium-designer/pcb-pnl-collaboratecomparemergecollaborate-compare-and-merge-ad

  • @nandsingh4669
    @nandsingh4669 4 года назад

    i love it

  • @Jindraxx20
    @Jindraxx20 4 года назад

    May i ask, is this possible for older versions ? I have AD18 .

    • @RobertFeranec
      @RobertFeranec  4 года назад

      I am sure. Just, I know, that in some versions where bugs and it didn't work well. PS: Please, if possible, you can try it and let me know (you can simply clone the repository I created in this video, you will immediately see if it is working).

    • @Jindraxx20
      @Jindraxx20 4 года назад

      @@RobertFeranec Hey Robert. I'm sorry for the delayed reply. I've created my own repo and copied your project inside. It seems that the version control with git is working great also in AD18.1.6 . Gitlink --> github.com/kifantidis/demo_ADgit

    • @RobertFeranec
      @RobertFeranec  4 года назад

      @@Jindraxx20 Awesome!

  • @brijeshkhokhar
    @brijeshkhokhar 4 года назад

    where can i get updated version of altium 19 or 20 ? I am using altium 14, I want to update ...

    • @RobertFeranec
      @RobertFeranec  4 года назад

      Brijesh, you may need to talk to your local Altium supplier.

    • @nikiphedia
      @nikiphedia 4 года назад +1

      @@RobertFeranec Hello Robert, i see you work with SVN. I use them on my Offline Altium 10 and it work very well. I guess git will work with older Versions too. Try it Brijesh. May you has to chosen the rigth SVN Version.

    • @brijeshkhokhar
      @brijeshkhokhar 4 года назад

      @@RobertFeranec I updated my software to AD 20.0.13

  • @platin2148
    @platin2148 4 года назад

    If they are binary files the never ever add them to git only if you have lsf but still non ideal.

  • @cbureriu
    @cbureriu 11 месяцев назад

    should've been a 5 min video

  • @theflooopjack
    @theflooopjack 3 года назад

    Great video.
    I would love to know how you handle file naming and folder structures while using Git in Altium.
    I watched your video ruclips.net/video/0Cz0Xht50zg/видео.html on the tip for keeping version names in the altium file names.
    it appears that your "lower level" files do not have versions in their file names, e.g. myPcb_v1.PcbDoc and myPcb_v2.pcbdoc.
    but what happens when i go from V1i2 to V1i3, or when i go from V1 to V2?
    i believe Git will not see that the project file or PCB file is the same, it will see it as a new file created and it will highlight it to add to the repo.
    i can see the repository growing over time.
    (in our software and firmware teams they just put a version tag into git and if we need to revert to an older version, we just Git Pull that specific version)
    How do you handle these things in PCB design?
    I see in this video that you have a Version 1 and Version 2 that show up in Storage Manager. how did you create those, and how do those relate to your folder structure?
    Can you do a video that shows more about how you handle those kinds of changes?
    Thank you so much!

  • @wl9052
    @wl9052 Год назад

    from ukraine?