Git Product home page Git Product logo

catkin_tools_fetch's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

catkin_tools_fetch's Issues

Problems with spaces !?

I got an error with catkin fetch in a CI environment, seems to me that some spaces are too much: Look at "image_template.git". The package has two dependencies that are correctly listed. Here's the output:

$ catkin fetch --default_url [email protected]:ipb-tools
INFO:fetch: Avoid fetching ROS packages.
INFO:fetch: [ROS]: Searching all packages.
INFO:fetch: [ROS]: Not found. Ignoring pre-defined ROS packages.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [fop]                : Found 3 dependencies.
INFO:fetch:  [catkin]             : Found 2 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [image_template  ]   : [email protected]:ipb-tools/image_template  .git
INFO:fetch:  [noise_estimation]   : [email protected]:ipb-tools/noise_estimation.git
INFO:fetch:  [cmake]              : [NOT FOUND]
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch:  [python-empy]        : [NOT FOUND]
INFO:fetch: Cloning valid dependencies:
ERROR:fetch:  [image_template  ]   : [ERROR] Git error code: 129
INFO:fetch:  [noise_estimation]   : [CLONED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [noise_estimation]   : Found 2 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch:  [image_template]     : [email protected]:ipb-tools/image_template.git
INFO:fetch: Cloning valid dependencies:
INFO:fetch:  [image_template]     : [CLONED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [image_template]     : Found 1 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch: No new dependencies. Done.

and with verbose:

$ catkin fetch --verbose --default_url [email protected]:ipb-tools
DEBUG:fetch: Enabling DEBUG output.
INFO:fetch: Avoid fetching ROS packages.
INFO:fetch: [ROS]: Searching all packages.
INFO:fetch: [ROS]: Not found. Ignoring pre-defined ROS packages.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [fop]                : Found 3 dependencies.
INFO:fetch:  [catkin]             : Found 2 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [image_template  ]   : [email protected]:ipb-tools/image_template  .git
INFO:fetch:  [noise_estimation]   : [email protected]:ipb-tools/noise_estimation.git
INFO:fetch:  [cmake]              : [NOT FOUND]
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch:  [python-empy]        : [NOT FOUND]
INFO:fetch: Cloning valid dependencies:
DEBUG:fetch: Clone output: Too many arguments.

usage: git clone [options] [--] <repo> [<dir>]

    -v, --verbose         be more verbose
    -q, --quiet           be more quiet
    --progress            force progress reporting
    -n, --no-checkout     don't create a checkout
    --bare                create a bare repository
    --mirror              create a mirror repository (implies bare)
    -l, --local           to clone from a local repository
    --no-hardlinks        don't use local hardlinks, always copy
    -s, --shared          setup as shared repository
    --recursive           initialize submodules in the clone
    --recurse-submodules  initialize submodules in the clone
    --template <template-directory>
                          directory from which templates will be used
    --reference <repo>    reference repository
    -o, --origin <name>   use <name> instead of 'origin' to track upstream
    -b, --branch <branch>
                          checkout <branch> instead of the remote's HEAD
    -u, --upload-pack <path>
                          path to git-upload-pack on the remote
    --depth <depth>       create a shallow clone of that depth
    --single-branch       clone only one branch, HEAD or --branch
    --separate-git-dir <gitdir>
                          separate git dir from working tree
    -c, --config <key=value>
                          set config inside the new repository


ERROR:fetch:  [image_template  ]   : [ERROR] Git error code: 129
INFO:fetch:  [noise_estimation]   : [CLONED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [noise_estimation]   : Found 2 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch:  [image_template]     : [email protected]:ipb-tools/image_template.git
INFO:fetch: Cloning valid dependencies:
INFO:fetch:  [image_template]     : [CLONED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch:  [image_template]     : Found 1 dependencies.
INFO:fetch: Checking merged dependencies:
INFO:fetch:  [catkin]             : [IGNORED]
INFO:fetch: New packages available. Process their dependencies now.
INFO:fetch: Searching for dependencies.
INFO:fetch: No new dependencies. Done.
ERROR: Build failed: exit code 1

update

It should be possible to update all repositories to their newest state. There should be options on what to do with conflicts, e.g.:

  • ignore
  • abort

Make parallel

Fetch and update can take much less time if they are executed in parallel. We can implement this using asyncio or trollius.

Needed:

  • use asyncio for subprocess calls
  • write a printer that is able to update previous text

Allow loose specification of explicit url

Currently, when specifying a specific Url for a package it has to be specified in full. Allow for more freedom here. For example. Currently one has to do the following:

  <export>
    <git_url target="foo" url="https://github.com/USER/foo.git"/>
  </export>

It would be nice to not duplicate the name of the package if applicable:

  <export>
    <git_url target="foo" url="https://github.com/USER"/>
  </export>

Allow config files

These can at least store default urls for now. Can be stored in .config/catkin_fetch/config.yml and in the workspace.

Pull repo when performing `deps fetch`

Currently, we only check if the repo already exists in the catkin workspace. We could also pull the package in case it exists and make sure it is up to date. This way there is no need to run catkin deps update after running catkin deps fetch.

Implement 'stash' strategy

When we pull a repo, there can be unsaved changes that wouldn't allow us to pull. We might want a strategy to automatically stash them. Implement this after #4 is merged and #3 is closed.

Make the code work with https links that require password

There is an issue that arises when working with https links that require user and password. Currently the code just silently fails when git tries to ask the user for username and password. I believe we could block the thread that asks for this and wait till the user provides the asked info. We need to make sure we block all the other threads while the user is inputting the data.

Unable to handle package.xml format version '3'

Hey there. I am trying to run it on a virtual machine, and I got error as this:
Unable to handle package.xml format version '3'

I tried with sudo apt-get update && sudo apt-get install --only-upgrade python-catkin-pkg, but it is still not working... do you have any idea? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.